通过 open-meteo.com 获取当前天气与预报,可备用 wttr.in。无需 API 密钥。
天气 Open Meteo skill. 此技能通过查询 open meteo.com 公共 API 来提供当前天气和简单的预测是一项面向实际任务的技能,主要用于如果地理编码搜索或天气请求失败, 该技能可以飞翔。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
该技能通过调用 open-meteo.com 公共 API 获取当前天气及简要预报。若地理编码查询或天气请求失败,技能可自动回退至轻量级替代服务 wttr.in。
curl 和 jq。@uri 过滤器演示了安全构造查询字符串的方法。✔ 用户询问 某一地点的天气、预报、气温或降雨概率。 ✖ 不适用于历史气象数据、极端天气预警或详细气候学分析。
该技能接受一个参数:位置名称(城市名、地区名,或以 lat,lon 格式表示的经纬度坐标)。
地理编码(获取地点对应的经纬度):
curl -s "https://geocoding-api.open-meteo.com/v1/search?name=São+Paulo&count=1" | jq '.results[0] | {name, latitude, longitude}'
当前天气(按经纬度查询):
curl -s "https://api.open-meteo.com/v1/forecast?latitude=-23.55&longitude=-46.63¤t_weather=true" | jq '.current_weather'
7 日预报(按经纬度查询):
curl -s "https://api.open-meteo.com/v1/forecast?latitude=-23.55&longitude=-46.63&daily=temperature_2m_max,temperature_2m_min,precipitation_sum&forecast_days=7" | jq '.daily'
JSON 示例片段
{
"latitude": -23.55,
"longitude": -46.63,
"current_weather": {
"temperature": -5.3,
"windspeed": 3.9,
"winddirection": 200,
"weathercode": 80,
"time": "2024-02-18T14:00"
}
}
📖 Open‑Meteo API 文档
单行文本(HTML 格式):
curl -s "wttr.in/São+Paulo?format=3"
紧凑纯文本格式:
curl -s "wttr.in/São+Paulo?format=1"
PNG 图像(适用于终端显示或嵌入):
curl -s -o sp.png "http://wttr.in/São+Paulo?format=1"
用户: 圣保罗现在的天气如何? Agent:
圣保罗当前天气:🌤️ +10 °C,降雨概率 20%
curl -s "https://geocoding-api.open-meteo.com/v1/search?name=$(echo São Paulo | jq -sRr @uri)"
jq 动态构建查询:
city="São Paulo" lat=$(curl -s "https://geocoding-api.open-meteo.com/v1/search?name=$(echo $city | jq -sRr @uri)" | jq -r '.results[0].latitude') lon=$(curl -s "https://geocoding-api.open-meteo.com/v1/search?name=$(echo $city | jq -sRr @uri)" | jq -r '.results[0].longitude')
latitude 和 longitude 参数。相关专题
热门下载
相关下载
精品课程
共6课时 | 54.6万人学习
共89课时 | 133.4万人学习
共49课时 | 82.2万人学习