前提准备

腾讯云账号(需实名认证)

创建函数

前往腾讯云函数 新建函数,函数名称及地域随意,运行环境 Python 3.6 保持不变。

函数代码选择在线编辑,执行方法修改成 index.main (即把 _handler 给删掉)随后粘贴如下代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#!/usr/bin/python3
#coding=utf-8

import requests, json

spkey = 'f0612538bbxxxxxxxxxxxxxx'
def get_iciba_everyday():
icbapi = 'http://open.iciba.com/dsapi/'
eed = requests.get(icbapi)
bee = eed.json() #返回的数据
english = bee['content']
zh_CN = bee['note']
str = '【奇怪的知识】\n' + english + '\n' + zh_CN
return str

def main(arg1,arg2):
try:
api = 'http://t.weather.itboy.net/api/weather/city/' #API地址,必须配合城市代码使用
city_code = '101280601'
tqurl = api + city_code
response = requests.get(tqurl)
d = response.json() #将数据以json形式返回,这个d就是返回的json数据
if(d['status'] == 200): #当返回状态码为200,输出天气状况
parent = d["cityInfo"]["parent"] #省
city = d["cityInfo"]["city"] #市
update_time = d["time"] #更新时间
date = d["data"]["forecast"][0]["ymd"] #日期
week = d["data"]["forecast"][0]["week"] #星期
weather_type = d["data"]["forecast"][0]["type"] # 天气
wendu_high = d["data"]["forecast"][0]["high"] #最高温度
wendu_low = d["data"]["forecast"][0]["low"] #最低温度
shidu = d["data"]["shidu"] #湿度
pm25 = str(d["data"]["pm25"]) #PM2.5
pm10 = str(d["data"]["pm10"]) #PM10
quality = d["data"]["quality"] #天气质量
fx = d["data"]["forecast"][0]["fx"] #风向
fl = d["data"]["forecast"][0]["fl"] #风力
ganmao = d["data"]["ganmao"] #感冒指数
tips = d["data"]["forecast"][0]["notice"] #温馨提示
cpurl = 'https://qmsg.zendee.cn/send/'+spkey
# 天气提示内容
tdwt = get_iciba_everyday() + "\n-----------------------------------------" + "\n【今日份天气】\n城市: " + parent + city + \
"\n日期: " + date + "\n星期: " + week + "\n天气: " + weather_type + "\n温度: " + wendu_high + " / "+ wendu_low + "\n湿度: " + \
shidu + "\nPM25: " + pm25 + "\nPM10: " + pm10 + "\n空气质量: " + quality + \
"\n风力风向: " + fx + fl + "\n感冒指数: " + ganmao + "\n温馨提示: " + tips + "\n更新时间: " + update_time
print(tdwt)
data = {
'msg':tdwt.encode('utf-8')
}
requests.post(cpurl,data=data) #把天气数据转换成UTF-8格式,不然要报错。
except:
error = '【出现错误】\n  今日天气推送错误,请检查服务或网络状态!'
print(error)

展开高级配置,内存选择 64 MB 即可。

前往 https://qmsg.zendee.cn 注册账号,获取 key,然后在 QQ 内添加给你推送的服务号,修改函数代码中第 6 行的 spkey,修改成你的 key

前往 https://where.qweather.com/index.html 输入期望要推送的城市天气,比如深圳,复制该 ID,修改函数代码中第 19 行的 city_code

images

修改函数代码中第 19 行的 cpurl 默认是推送到个人的,如需推送到群消息,请将 url 修改为 https://qmsg.zendee.cn/group/

最后点击测试,如提示检测到您的函数未部署,是否将当前函数部署并测试?选择,稍后即可在 QQ 查看内容。

images

定时触发

点击触发管理,创建一个触发器

images

将会在每天早晨的 7 : 30 分进行推送

代码贡献者 @culprit