企业微信群机器人每日天气提醒(shell + crontab)
2022/1/19 7:13:19
本文主要是介绍企业微信群机器人每日天气提醒(shell + crontab),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
介绍:
使用 shell 获取当地天气,并调用企业微信机器人发送当天天气情况。
一、新建创建机器人,获取 webhook 地址
- 准备一个企业微信群,并右键选择「添加群机器人」
- 选择创建群机器人
- 填写名称后确定,会生成对应的 webhook
二、编写 shell 脚本,获取天气情况
1. 调用天气情况 API
天气 API (需要注册后才能使用)
注册后在用户中心可以查看 APPID 和 APPSecret
# 在终端输入该命令可以测试下 curl -s https://www.yiketianqi.com/free/day\?appid\=[替换自己的appid]\&appsecret\=[替换自己的密钥]\&unescape\=1\&cityid\=[城市 ID]
参数名 | 是否必填 | 类型 | 说明 | 备注 |
---|---|---|---|---|
appid | 是 | string | 用户appid | 注册开发账号 |
appsecret | 是 | string | 用户appsecret | |
cityid | 否 | string | 城市 ID | 城市 id 参考 |
city | 否 | string | 城市名称 | 不要带市和区, 支持市区县, 不支持乡镇级别; 如: 青岛、铁西 |
更多请查看 天气 API
响应 JSON
{ # 城市 ID "cityid":"101120101", # 城市名称 "city":"济南", # 更新时间 "update_time":"20:55", # 天气 "wea":"晴", # 天气 icon "wea_img":"qing", # 实时温度 "tem":"11", # 最高气温 "tem_day":"17", # 最低气温 "tem_night":"7", # 风向 "win":"东南风 ", # 风力 "win_speed":"1级", # 风速 "win_meter":"小于12km/h", # 空气质量 "air":"73" }
2. json 返回值解析方法
- 使用专门的Json解析库: jq - Command-line JSON processor
- 安装,使用系统的包管理器:
yum install jq
- 使用
curl -s https://www.yiketianqi.com/free/day\?appid\=[替换自己的appid]\&appsecret\=[替换自己的密钥]\&unescape\=1\&cityid\=[城市 ID] | jq
- 取对应值
| jq -r ‘.[key]’
curl -s https://www.yiketianqi.com/free/day\?appid\=[替换自己的appid]\&appsecret\=[替换自己的密钥]\&unescape\=1\&cityid\=[城市 ID] | jq -r '.wea'
3. shell 脚本思路
- 将 curl 获取天气结果返回值赋值给变量
RESULT=$(curl -s https://www.yiketianqi.com/free/day\?appid\=[替换自己的appid]\&appsecret\=[替换自己的密钥]\&unescape\=1\&cityid\=[城市 ID])
- 使用 jq 获取自己需要的天气信息
# 输出天气情况 WEATHER=$(echo $RESULT | jq -r '.wea') # 输出温度 e.g:3➖-7 TEMP=$(echo $RESULT | jq -r '.tem_day')"➖"$(echo $RESULT | jq -r '.tem_night') # 输出风向和风力 西南风,1级 WIN=$(echo $RESULT | jq -r '.win')","$(echo $RESULT | jq -r '.win_speed') # 输出空气质量 AIR=$(echo $RESULT | jq -r '.air')
- 使用 curl 推送消息给微信群
curl '你的 webhook' \-H 'Content-Type: application/json' \-d "{\"msgtype\":\"markdown\",\"markdown\":{\"content\": \" 具体信息\"}}"
4. 完整 shell 脚本
RESULT=$(curl -s https://www.yiketianqi.com/free/day\?appid\=[替换自己的appid]\&appsecret\=[替换自己的密钥]\&unescape\=1\&cityid\=[城市 ID]) # 输出天气情况 WEATHER=$(echo $RESULT | jq -r '.wea') TEMP=$(echo $RESULT | jq -r '.tem_day')"➖"$(echo $RESULT | jq -r '.tem_night') WIN=$(echo $RESULT | jq -r '.win')","$(echo $RESULT | jq -r '.win_speed') AIR=$(echo $RESULT | jq -r '.air') #这里做了些天气判断,根据情况输出不同的信息 if [ $WEATHER == "晴" ] ; then INFO='今日天气:'$WEATHER'☀️ ,今天有阳光,午休时间可以去散散步~' elif [ $WEATHER == "云" ] || [ $WEATHER == "多云" ]; then INFO='今日天气:'$WEATHER'☁️ ,多出门呼吸新鲜空气哟~' elif [ $WEATHER == "阴" ] || [ $WEATHER == "多云转阴" ]; then INFO='今日天气:'$WEATHER'⛅ ,今天是阴天,但心情不要是阴天' elif [ $WEATHER == "雨" ] || [ $WEATHER == "小雨" ] || [ $WEATHER == "中雨" ] || [ $WEATHER=="大雨"]; then INFO='今日天气:'$WEATHER'
这篇关于企业微信群机器人每日天气提醒(shell + crontab)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-25Elevate Your Lead Generation Game with Maps Scraper AI
- 2024-05-15PingCAP 黄东旭参与 CCF 秀湖会议,共探开源教育未来
- 2024-05-13PingCAP 戴涛:构建面向未来的金融核心系统
- 2024-05-09flutter3.x_macos桌面os实战
- 2024-05-09Rust中的并发性:Sync 和 Send Traits
- 2024-05-08使用Ollama和OpenWebUI在CPU上玩转Meta Llama3-8B
- 2024-05-08完工标准(DoD)与验收条件(AC)究竟有什么不同?
- 2024-05-084万 star 的 NocoDB 在 sealos 上一键起,轻松把数据库编程智能表格
- 2024-05-08Mac 版Stable Diffusion WebUI的安装
- 2024-05-08解锁CodeGeeX智能问答中3项独有的隐藏技能