为什么选择腾讯天气 API?
在开发天气预报应用、出行提醒、智能家居等场景时,一个稳定、准确且响应迅速的天气数据接口是刚需。腾讯天气 API 背靠腾讯云生态,数据源覆盖全国县级以上城市,提供实时天气、逐小时预报、空气质量等丰富信息。更重要的是,它通过 ApiZero 平台实现了即开即用的在线调试体验------无需编写任何代码就能验证接口是否可用,大大降低了接入门槛。
本文将带你从零开始:
- 注册并获取 API Key;
- 在 ApiZero 控制台完成在线调试;
- 使用 Python(requests)和 JavaScript(fetch)编写调用代码;
- 解析返回的 JSON 数据并提取关键字段。
读完本文,你就能在自己的项目中无缝接入腾讯天气能力。
准备工作:注册与 API Key 获取
首先,访问 ApiZero 平台,注册账户并登录。在"API 商城"搜索"腾讯天气",进入详情页。通常需要点击"免费试用"或"立即购买"来获取 API 密钥(对于个人开发者一般有免费额度)。
- 登录后,在右上角用户头像进入"我的 API";
- 找到"腾讯天气"实例,点击"查看密钥";
- 复制
app_key和app_secret(部分接口只需要一个 token)。
注意:不同版本的腾讯天气接口可能要求不同的鉴权方式,常见的有
X-TC-Key标头或 URL 参数key=。详见接口文档。
在线调试:零代码验证接口
ApiZero 平台的一大特色是内置在线调试器。在接口详情页,你可以直接填写参数并发送请求,查看响应。
调试步骤
- 进入腾讯天气 API 详情页,找到"调试"或"Try-it"面板;
- 选择一个端点,例如
/v3/weather/now(实时天气); - 填写必填参数:
location(城市名如"北京"或经纬度如116.40,39.90),key(你的 API Key,平台会自动填充); - 点击"发送请求";
- 右侧显示 HTTP 状态码和响应 JSON。
示例响应(节选):
json
{
"code": 200,
"message": "success",
"data": {
"temperature": 28,
"humidity": 65,
"weather": "晴",
"wind_direction": "东南风",
"wind_level": 2,
"update_time": "2025-06-17 14:00:00"
}
}
通过在线调试,你可以快速确认接口是否可用、返回字段是否符合预期,甚至直接复制出代码示例(部分平台会生成对应语言的调用代码)。
Python 调用详解
下面用 Python 实现实时天气查询。假设 API 基址为 https://apis.apizero.cn/tencent-weather/v3/weather/now,鉴权方式为 URL 参数 key。
安装依赖
仅需标准库 requests,若未安装:
bash
pip install requests
完整代码
python
import requests
# 配置
API_KEY = "你的API_KEY"
BASE_URL = "https://apis.apizero.cn/tencent-weather/v3/weather/now"
def get_real_time_weather(city: str) -> dict:
"""获取指定城市的实时天气。
Args:
city: 城市名称,如 "深圳" 或经纬度 "114.07,22.55"
Returns:
dict: 包含天气数据的字典
"""
params = {
"key": API_KEY,
"location": city
}
try:
resp = requests.get(BASE_URL, params=params, timeout=10)
resp.raise_for_status()
data = resp.json()
if data.get("code") == 200:
return data["data"]
else:
raise Exception(f"API 错误: {data.get('message')}")
except requests.exceptions.RequestException as e:
print(f"网络请求失败: {e}")
return {}
if __name__ == "__main__":
city = input("请输入城市名: ")
result = get_real_time_weather(city)
if result:
print(f"城市: {city}")
print(f"温度: {result['temperature']}°C")
print(f"天气: {result['weather']}")
print(f"湿度: {result['humidity']}%")
print(f"风向: {result['wind_direction']} {result['wind_level']}级")
print(f"更新时间: {result['update_time']}")
else:
print("未获取到天气数据")
代码解析
- 异常处理 :
raise_for_status()捕获 HTTP 错误(如 401、403);timeout防止长时间挂起。 - 数据校验 :检查
code是否为 200,避免解析错误响应。 - 灵活性 :
location支持城市名或经纬度,代码无需改动。
运行效果:
text
请输入城市名: 广州
温度: 32°C
天气: 多云
湿度: 70%
风向: 南风 3级
更新时间: 2025-06-17 14:30:00
JavaScript (前端) 调用示例
对于 Web 应用或小程序,可以使用 fetch 在浏览器中请求天气接口。注意鉴权机制可能对跨域有限制,需确保 API 支持 CORS 或使用代理。
javascript
const API_KEY = '你的API_KEY';
const BASE_URL = 'https://apis.apizero.cn/tencent-weather/v3/weather/now';
async function getWeather(city) {
const url = new URL(BASE_URL);
url.searchParams.append('key', API_KEY);
url.searchParams.append('location', city);
try {
const response = await fetch(url.toString(), {
method: 'GET',
headers: { 'Accept': 'application/json' }
});
if (!response.ok) {
throw new Error(`HTTP ${response.status}`);
}
const json = await response.json();
if (json.code === 200) {
return json.data;
} else {
throw new Error(json.message);
}
} catch (error) {
console.error('请求失败:', error);
return null;
}
}
// 使用示例
getWeather('北京').then(data => {
if (data) {
console.log(`北京当前温度:${data.temperature}°C,天气:${data.weather}`);
}
});
注意事项
- API Key 安全:在前端代码中暴露 API Key 存在风险,建议将调用封装在后端服务中,前端通过自己的接口中转。
- CORS:如果浏览器控制台出现跨域错误,联系 API 平台开启白名单或使用代理。
高级用法:批量城市与预报查询
腾讯天气 API 通常还支持:
- 批量查询:
location参数用|分隔城市(如北京|上海|广州),返回数组。 - 未来预报:端点
/v3/weather/forecast,参数days=3获取 3 天预报。
示例:获取北京未来 3 天天气
python
def get_forecast(city, days=3):
url = "https://apis.apizero.cn/tencent-weather/v3/weather/forecast"
params = {"key": API_KEY, "location": city, "days": days}
resp = requests.get(url, params=params)
data = resp.json()
return data.get("data", [])
错误处理最佳实践
- 状态码分类 :
- 200:成功
- 401:API Key 无效或过期
- 403:无权限(如未订阅)
- 429:请求频率超限
- 响应中的业务码 :即使 HTTP 200,
code也可能非 200(如 10001 表示参数错误)。必须检查业务码。 - 重试策略:对于 5xx 错误,使用指数退避重试最多 3 次。
总结
通过本文,你学会了:
- 如何在 ApiZero 平台注册并获取腾讯天气 API Key;
- 利用在线调试功能零代码验证接口;
- 使用 Python 和 JavaScript 完成真实调用;
- 解析天气数据并处理常见错误。
天气 API 是物联网、出行、内容聚合类产品的高频组件,掌握其集成方式能显著提升开发效率。建议在实际项目中将 API Key 存储在环境变量或配置中心,并考虑缓存响应(例如 10 分钟)以降低调用成本。
现在,打开你的编辑器,试试用腾讯天气 API 为你的应用增添实时天气能力吧!