自动推送天气信息(Python+腾讯云函数+qmsg酱+和风天气)

环境:python3.6 + 腾讯云函数 + qmsg酱 + 和风天气

1、Qmsg酱:

 打开官网:https://qmsg.zendee.cn/index.html

  • 登录管理台,拿到key,留着一会用
  • qq号码 中,添加上要接受信息的qq
  • 在 Qmsg酱 中选个qq加上,收消息用

2.和风天气:

打开官网:https://console.qweather.com/
注册登录填写信息,拿到key,留着一会用

3、代码:

注意事项:

  • 修改16行【和风天气的key】,替换成 2 中拿到的key
  • 修改30行【qmsg的key】,替换成 1 中拿到的key
  • 修改30行【接收消息的qq号】,第一步中,加qq的你自己的号
  • 修改15行 北京 ,成你自己的地理位置(以市为单位) 例如:上海
  • 25行,数字为2,发送明天的,数字改为1,发送今天的。这里我是每天晚上发明天的天气信息,所以是2,如果你要早上发,改为1
  • 发送的消息中,带有日期,我觉得没用,建议测试完成后删除,删除代码27行中的   
    yb[ i ]['date'] + ' ' +

      即可。加上是为了给你测试发送的日期对不对用的,不对的话按照上一步进行修改。
import requests
import json
from requests.packages.urllib3.exceptions import InsecureRequestWarning
# 禁用安全请求警告
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
  
global contents
contents = ''
 
# 北京
def sign():
    yburl = 'https://free-api.heweather.com/s6/weather/forecast'
    value = {
        'location': '北京',
        'key': '【和风天气的key】',
        'lang': 'zh'
    }
    ybreq = requests.get(yburl, params=value)
    ybjs = ybreq.json()
 
    # 返回api参数:
    # print(ybjs)
 
    for i in range(2):
        yb = ybjs['HeWeather6'][0]['daily_forecast']
        d1 = yb[i]['date'] + ' ' + yb[i]['cond_txt_d'] + ' ' + yb[i]['tmp_min'] + '—' + yb[i]['tmp_max'] + '℃'  + ' ' + yb[i]['wind_dir']  + ' ' + yb[i]['wind_sc'] + '级'
        # output(d1)
    # qq推送
    qqtalk = 'https://qmsg.zendee.cn/send/【qmsg的key】?msg=' + d1 + '&qq=【接收消息的qq号】'
    requests.get(qqtalk)
 
 
def main():
    sign()
  
def main_handler(event, context):
    return main()
  
if __name__ == '__main__':
    main()

 4、腾讯云函数:

打开腾讯云函数登录:https://console.cloud.tencent.com/scf/list

  • 函数服务——新建——自定义创建
  • 运行环境改为python3.6
  • 代码复制进去
  • 往下拉到底,触发器配置——自定义创建,触发周期改为自定义,Cron表达式改为下方这一段,21是21点,想要早上6点触发就改为6,其他不要动。
    0 0 21 * * * *
  • 最下方,点完成,跳转管理

5、测试是否完成: 

 

进函数代码,下拉,有个部署测试,点击测试,qq收到消息,完成。


运行成功:
 

 

 

Supongo que te gusta

Origin blog.csdn.net/lau_jw/article/details/118969931
Recomendado
Clasificación