云函数每日自动推送天气

创建函数

腾讯云→云函数服务,创建空白函数,将执行方式改为index.main 将模板代码清空,输入以下

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)

修改内容

+修改函数代码中第6行的spkey,修改成你的qmsg酱酱的key 查询id 输入想要推送的指定城市的天气,复制id,修改函数代码中第19行的 city_code +修改函数代码中第 19 行的 cpurl 默认是推送到个人的,如需推送到群消息,请将 url 修改为 https://qmsg.zendee.cn/group/

部署

点击部署,然后测试,看有无报错

定时触发

利用cron表达式,设置一个触发器