编辑代码

#!/bin/bash
# 使用了和风天气api接口,注意此key是需要账号申请的
API_KEY="c2f8a31f1f36400c878d359188357c0d"
LOCATION_ID="101230401"
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')
feelsLike=$(echo $weather_data | jq -r '.now.feelsLike')
obsTime=$(echo $weather_data | jq -r '.now.obsTime') 
#这里做了些天气判断,根据情况输出不同的信息
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 当前温度时间:$obsTime,当前天气状况: $INFO, 温度约为: $TEMP°C",湿度:$humidity%,风力情况:$WIN,体感温度:$feelsLike°C
# 构造消息并发送到企业微信机器人
payload="{\"msgtype\": \"markdown\", \"markdown\": {\"content\":  \"$INFO \\n >温度: $TEMP°C \\n >体感温度: $feelsLike°C \\n >风力: $WIN \\n >湿度: $humidity%\"}}"
curl -X POST -H "Content-Type: application/json" -d "$payload" "$WEBHOOK_URL"

echo "Done."


curl --compressed \
'https://devapi.qweather.com/v7/weather/3d?location=101230407&key=c2f8a31f1f36400c878d359188357c0d'