<==前面这篇已经写了定时提醒吃饭的了,但是定时吃饭每天都是固定的那些字,所以后面又想着搞个天气播报,增加点花样,有意思嘛,活着开心点😀
想知道天气,怎么办呢?首先想的是去爬某个网站的天气,别人已经实时更新好了,但是那样还是麻烦了
别人网站的天气消息哪里来的呢?有很多天气的公众API,可以直接调
需要注册一下,可以免费调用,不限次,像这类接口还是很多很多的,自己随便选
注册之后会有一个ID和密码,请求数据的时候用的
curl 'https://www.tianqiapi.com/free/day?appid=*******&appsecret=*********&lng=114.396028&lat=30.494790'
后面两个参数是坐标,当然也可以是城市等参数,每个API网站都有详细说明
然后就可以获得天气信息了,可以,已经完成第一步了,比如下面这个返回的结果
{"cityid":"101010100","city":"\u5317\u4eac","update_time":"00:29","wea":"\u9634","wea_img":"yin","tem":"23","tem_day":"30","tem_night":"17","win":"\u897f\u5357\u98ce","win_speed":"2\u7ea7","win_meter":"\u5c0f\u4e8e12km\/h","air":"55"}
害,太晚了,不写过程了,直接贴出.sh得了,有时间再补
#!/bin/bash
path='./out.txt'
#curl 'https://www.tianqiapi.com/free/day?appid=*****&appsecret=******&lng=114.396028&lat=30.494790' > $path
curl 'https://www.tianqiapi.com/free/day?appid=*****&appsecret=*****&city=武汉' > $path
city=$(cat out.txt|jq '.city')
city1=${city:start+1:end-1}
update_time=$(cat out.txt|jq '.update_time')
wea=$(cat out.txt|jq '.wea')
wea1=${wea:start+1:end-1}
tem_night=$(cat out.txt|jq '.tem_night')
tem_night1=${tem_night:start+1:end-1}
tem_day=$(cat out.txt|jq '.tem_day')
tem_day1=${tem_day:start+1:end-1}
win=$(cat out.txt|jq '.win')
win1=${win:start+1:end-1}
win_speed=$(cat out.txt|jq '.win_speed')
win_speed1=${win_speed:start+1:end-1}
win_meter=$(cat out.txt|jq '.win_meter')
win_meter1=${win_meter:start+1:end-1}
air=$(cat out.txt|jq '.air')
air1=${air:start+1:end-1}
out="今日天气:\n $city1,$wea1,最高温度 $tem_day1 度,最低温度 $tem_night1 度,$win1 $win_speed1,$win_meter1,空气质量:$air1"
echo $out
curl 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=**这里是微信群机器人的key**' \
-H 'Content-Type: application/json' \
-d '{
"msgtype": "text",
"text": {
"content": "'"$out"'"
}
}'
然后把文件添加到定时任务里,每天早上执行就可以了
效果如下