废话不多说,直接上代码
#!/bin/bash
# 使用了和风天气api接口,注意此key是需要账号申请的
API_KEY="和风天气接口的key"
LOCATION_ID="位置信息,比如101120601"
WEBHOOK_URL="企微机器人webhook_url"
# 使用curl获取天气数据,并通过jq处理JSON响应
weather_data=$(curl -s -L -X GET --compressed "https://devapi.qweather.com/v7/weather/now?location=${LOCATION_ID}&key=${API_KEY}")
# 检查是否成功获取到数据
if [[ -z "$weather_data" ]]; then
echo "Error: Unable to fetch weather data."
exit 1
fi
# 输出天气情况
# 注意:此处需要确保系统中已安装jq
WEATHER=$(echo $weather_data | jq -r '.now.text')
TEMP=$(echo $weather_data | jq -r '.now.temp')
WIN=$(echo $weather_data | jq -r '.now.windDir')","$(echo $weather_data | jq -r '.now.windScale')"级"
humidity=$(echo $weather_data | jq -r '.now.humidity')
#这里做了些天气判断,根据情况输出不同的信息
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'🌧️ ,今天有雨,记得带伞'
else
INFO='今日天气:'$WEATHER'⭐,新的一天开始了'
fi
# 输出天气信息
echo "Sending weather 当前天气状况: $INFO, 温度约为: $TEMP°C",湿度:$humidity%,风力情况:$WIN。
# 构造消息并发送到企业微信机器人
payload="{\"msgtype\": \"text\", \"text\": {\"content\": \"$INFO \\n >温度: $TEMP \\n >风力: $WIN \\n >湿度: $humidity\"}}"
curl -X POST -H "Content-Type: application/json" -d "$payload" "$WEBHOOK_URL"
echo "Done."