本文章最初发布在 XJHui’s Blog,未经允许,任何人禁止转载!

注意:最新修改版本已发布在 这里,点击前往查看!

Weather-Push

QQ、群推送今日天气(python+云函数

github项目地址:https://github.com/xingjiahui/Weather-Push

介绍

功能介绍

  • 支持推送到QQ、群,数目无限制
  • 不同QQ、群可推送不同地区天气
  • 推送内容丰富(日期,地区,天气,最高气温,最低气温,当前气温,风向,风力,空气指数,pm2.5指数,运动指数,天气小提示,能见度等内容)

运行界面

  1. 执行日志:

    QQ、群推送今日天气(python+云函数)-编程知识网

  2. QQ推送:

    QQ、群推送今日天气(python+云函数)-编程知识网

  3. 群推送:

    QQ、群推送今日天气(python+云函数)-编程知识网

    注意:为了降低接口压力和避免不必要问题,两次推送强制间隔20s+。

使用须知

  1. 免费,腾讯云函数每月100万次免费调用额度,本项目每天只调用一次:

    QQ、群推送今日天气(python+云函数)-编程知识网

  2. 所有接收推送的QQ、群均需要添加机器人为好友(不然怎么给你推送)

语言库

  • python 3.8
  • requests 2.24.0(接口get请求)
  • pyyaml 5.3.1(配置文件)
  • json 2.0.9(数据格式化)

使用该项目

下载项目

  1. 进入 Weather-Push 项目主页,按下图依次点击 codeDownload ZIP

    QQ、群推送今日天气(python+云函数)-编程知识网

  2. 解压缩到桌面:

    QQ、群推送今日天气(python+云函数)-编程知识网

    注意:尽管云函数有直接上传zip的选项,但我尝试了几次均上传失败,所以请务必解压后上传。

添加好友

  1. qq扫描二维码,添加该机器人为好友:

    QQ、群推送今日天气(python+云函数)-编程知识网

  2. 群推送:添加好友后,将其拉入群聊(注意保护群聊隐私)。

创建云函数

  1. 进入 腾讯云函数 首页:

    QQ、群推送今日天气(python+云函数)-编程知识网

    注意:若账号注册有问题,请自行百度

  2. 点击左侧 函数服务新建 云函数:

    QQ、群推送今日天气(python+云函数)-编程知识网

  3. 填写 基本信息

    • 函数名称:自定义
    • 运行环境:python 3.6
    • 其余均为默认,点击 下一步
  4. 填写 函数配置

    • 描述:QQ推送今日天气(python+云函数)

    • 高级配置:

      QQ、群推送今日天气(python+云函数)-编程知识网

    • 其余配置项默认即可,点击完成

  5. 按下图 上传 前面解压的文件夹,点击 保存

    QQ、群推送今日天气(python+云函数)-编程知识网

  6. 项目上传成功:

    QQ、群推送今日天气(python+云函数)-编程知识网

配置文件

  1. 打开配置文件:左侧文件树中找到 userData.yml 文件,双击打开:

    QQ、群推送今日天气(python+云函数)-编程知识网

    注意:填写完成后,按下快捷键:ctrl+s 保存修改

  2. 推送到QQ:

    QQ、群推送今日天气(python+云函数)-编程知识网

  3. 推送到QQ群:

    QQ、群推送今日天气(python+云函数)-编程知识网

    注意:要添加多个QQ、群时,按序号依次添加即可,注意缩进。

测试运行

  1. 完成以上步骤,点击下图中的 保存并测试

    QQ、群推送今日天气(python+云函数)-编程知识网

  2. 运行成功:

    • 执行日志:

      QQ、群推送今日天气(python+云函数)-编程知识网

    • QQ、群推送:

      QQ、群推送今日天气(python+云函数)-编程知识网

    • 今日天气:

      QQ、群推送今日天气(python+云函数)-编程知识网

脚本维护

定时触发

  1. 创建触发器:

    QQ、群推送今日天气(python+云函数)-编程知识网

  2. 运行结果:

    QQ、群推送今日天气(python+云函数)-编程知识网

    注意:不要尝试与推送机器人对话,他不会回复你的

问题反馈

  1. 项目 issues 地址:https://github.com/xingjiahui/Weather-Push/issues
  2. 作者博客留言板:https://plushine.cn/messageboard/

更新日志

  • v2.0 2020.11.10

    • 修复因云函数重复执行导致的重复推送问题

    • 修复因qmsg缓存异常导致的推送昨日天气的bugs

    • 弃用 高德地图 api、一言 api、Qmsg酱 api

    • 简化配置,支持同时推送到QQ和群

    • 不同QQ、群可推送不同地区天气

    • 丰富推送内容(显示今日天气对应表情)

    • 项目快照:

      QQ、群推送今日天气(python+云函数)-编程知识网

  • v1.0 2020.10.17

    • 通过高德地图api获取天气信息

    • 支持多用户(多地区)天气推送

    • 推送内容添加 一言 短句

    • 脚本支持部署到云函数

    • 项目快照:

      QQ、群推送今日天气(python+云函数)-编程知识网

声明

  • 此脚本是作者利用业余时间所写,禁止用于商业、非法用途
  • 此脚本无任何恶意代码,但可能存在些许bug,因此所造成的损失与本人无关
  • 使用、运行本脚本即代表同意上述声明

感谢

  1. 服务支持:
    • 高德地图:提供免费天气API

    • 腾讯云函数:触发、执行python项目

    • Qmsg酱:QQ消息推送API

    • 一言:一言API

    • QQPusher:QQ、QQ群消息推送API

    • 实况天气:天气APi

  2. 技术支持:
    • 博客园-阿宅gogo:python发送get请求
    • CSDN-站在风口:python字典初始化
    • CSDN-占海:腾讯云函数添加依赖函数库
    • CSDN-marselha:关于UnicodeDecodeError: ‘gbk’ codec can’t decode byte 的解决方法
    • CSDN-GhostRiderQin:python加载YAML文件警告:YAMLLoadWarning: calling yaml.load() without… 的解决方法
    • 工具邦:天气表情

不足之处,欢迎留言,会及时回复,及时更正!

创作不易,感谢支持!