接口编号: 506 | 接口名称: 天气预报 | 连接应用: 8179个 |
应用编号: 106012 | 应用标识: weather.realtime | 服务商: NowAPI |
说明
重大天气接口升级,整合大量国内天气功能,真正一个接口搞定所有,含: 1.实时天气,在原有功能基础上新加入风速、能见度、降雨量、气压。 2.未来5-7天预报。 3.未来逐小时预报。 4.PM2.5 aqi。 5.生活指数。 PS: 国外天气无逐小时、AQI、生活指数。 测试示例: https://sapi.k780.com/?app=weather.realtime&weaId=1&ag=today,futureDay,lifeIndex,futureHour&appkey=10003&sign=b59bc3ef6191eb9f747dd4e83c99f2a4&format=json (示例中sign会不定期调整) 更新日志: 2021-03-08 添加通过经纬度定位查询天气数据。 风向ID对照表 wtWindId
风向Id | 风向 | - |
0 | 无持续风向 | - |
1 | 东北风 | - |
2 | 东风 | - |
3 | 东南风 | - |
4 | 南风 | - |
5 | 西南风 | - |
6 | 西风 | - |
7 | 西北风 | - |
8 | 北风 | - |
风力Id(wtWinpId) | 风力wtWinpNm | - |
0 | 小于3级 | - |
1 | 3-4级 | - |
2 | 4-5级 | - |
3 | 5-6级 | - |
4 | 6-7级 | - |
5 | 7-8级 | - |
6 | 8-9级 | - |
7 | 9-10级 | - |
8 | 10-11级 | - |
9 | 11-12级 | - |
AQI指数 | 等级 | 指标 | 需注意事项 |
-1 | - | - | 该地域暂无AQI数据 |
0-50 | 1级 | 优 | 参加户外活动呼吸清新空气 |
51-100 | 2级 | 良 | 可以正常进行室外活动 |
101-150 | 3级 | 轻度污染 | 敏感人群减少体力消耗大的户外活动 |
151-200 | 4级 | 中度污染 | 对敏感人群影响较大 |
201-300 | 5级 | 重度污染 | 所有人应适当减少室外活动 |
>300 | 6级 | 严重污染 | 尽量不要留在室外 |
调用方式
Get/Post
请求url
HTTP: http://api.k780.com
HTTPS: https://sapi.k780.com
请求参数
参数 | 类型 | 是否必须 | 备注 |
---|---|---|---|
app | string | 是 | weather.realtime |
weaId | number | 否 | (推荐) 通过weaId查询,例: 1 城市列表城市列表中weaId (参数weaId,cityId,cityNm,cityIp,wgs84ll中取1个作为查询条件) |
cityId | string | 否 | (推荐) 城市编号查询,例: 101010100 城市列表城市列表中cityId |
cityNm | string | 否 | 通过中文城市名查询,例: 北京 城市列表城市列表中cityNm (带入前urlencode) |
cityIp | string | 否 | 通过ip地址查询,例: 202.104.153.201 (不推荐) |
wgs84ll | string | 否 | 通过经纬度坐标查询,例:116.442708,39.917344 (付费用户可用) |
ag | string | 否 | 功能显示参数: today,futureDay,lifeIndex,futureHour
today 显示今日天气节点 futureDay 显示天气预报(未来5-7天)节点 lifeIndex 显示相关节点中生活指数节点 futureHour 显示天气预报(逐小时)节点 多个用逗号隔开,可灵活选择 |
appkey | string | 是 | 使用API的唯一凭证 获取 |
sign | string | 是 | md5后的32位密文,登陆用. 获取 |
format | {json|xml} | 否 | 返回数据格式 |
jsoncallback | string | 否 | js跨域使用jsonp时可使用此参数 |
Json请求示例
http://api.k780.com/?app=weather.realtime&weaid=1&ag=today,futureDay,lifeIndex,futureHour&appkey=APPKEY&sign=SIGN&format=json
Json返回示例
{ success: "1", result: { weaid: "1", cityid: "101010100", area_1: "北京", area_2: "城区", area_3: "", realTime: { /*实时天气, 更新小于40分钟*/ week: "星期三", wtId: "3", /*天气编号 天气类型 wtId*/ wtNm: "阴", /*天气 天气类型 wtNm*/ wtIcon: "02", /*天气图标 天气类型 wtIcon*/ wtTemp: "18", /*温度℃*/ wtHumi: "44", /*湿度%*/ wtWindId: "2", /*风向ID (见面页上方风向ID对照表)*/ wtWindNm: "东风", /*风向*/ wtWinp: "3", /*风力 单位:级 (非风力ID,该值直接为风力级数)*/ wtWins: "12",/*风速 单位:km/h*/ wtAqi: "102", /*pm2.5 aqi*/ wtVisibility: "4.79", /*能见度km*/ wtRainfall: "0.00", /*降雨量mm*/ wtPressurel: "997", /*气压hpa*/ }, today: { /*今日天气*/ wtBlueSkyId: "1",/*1:可见蓝天 0:无蓝天*/ wtId1: "1",/*天气编号(白天) 天气类型 wtId*/ wtId2: "1",/*天气编号(夜间) 天气类型 wtId*/ wtNm1: "晴",/*天气(白天) 天气类型 wtNm*/ wtNm2: "晴",/*天气编号(夜间) 天气类型 wtNm*/ wtIcon1: "00",/*天气图标(白天) 天气类型 icon*/ wtIcon2: "00",/*天气图标(夜间) 天气类型 icon*/ wtTemp1: "14",/*温度(白天)*/ wtTemp2: "1",/*温度(夜间)*/ wtWindId1: "8",/*风向ID(白天风向 见面页上方风向ID对照表)*/ wtWindId2: "8",/*风向ID(夜间风向 见面页上方风向ID对照表)*/ wtWindNm1: "北风",/*风向*/ wtWindNm2: "北风",/*风向*/ /*此处风力与realTime节点不同,使用风力区间表示,wtWinpId与wtWinpNm对应*/ wtWinpId1: "2",/*风力ID (白天风力 见面页上方风力ID对照表)*/ wtWinpId2: "0",/*风力ID (夜间风力 见面页上方风力ID对照表)*/ wtWinpNm1: "4-5级",/*风力 (白天)*/ wtWinpNm2: "小于3级",/*风力 (夜间)*/ wtSunr: "06:16",/*日出时间*/ wtSuns: "18:26",/*日落时间(24小时制)*/ lifeIndex: { /*指数(含以下5种)*/ uv: { liNo: "uv", liNm: "紫外线指数", liAttr: "最弱", liDese: "辐射弱,涂擦SPF8-12防晒护肤品。" }, xt: { liNo: "xt", liNm: "血糖指数", liAttr: "不易波动", liDese: "天气条件好,血糖不易波动,可适时进行户外锻炼。" }, ct: { liNo: "ct", liNm: "穿衣指数", liAttr: "较冷", liDese: "建议着厚外套加毛衣等服装。" }, xc: { liNo: "xc", liNm: "洗车指数", liAttr: "不宜", liDese: "有雨,雨水和泥水会弄脏爱车。" }, kq: { liNo: "kq", liNm: "空气污染扩散指数", liAttr: "良", liDese: "气象条件有利于空气污染物扩散。" } } }, futureDay: [ /* 未来5-7天气预报,更新每天3次 相关栏位当前时段为夜间时会与白天栏位相同 */ { dateYmd: "2019-03-21", week: "星期四", wtBlueSkyId: "1",/*1:可见蓝天 0:无蓝天*/ wtId1: "1",/*天气编号(白天) 天气类型 wtId*/ wtId2: "1",/*天气编号(夜间) 天气类型 wtId*/ wtNm1: "晴",/*天气(白天) 天气类型 wtNm*/ wtNm2: "晴",/*天气编号(夜间) 天气类型 wtNm*/ wtIcon1: "00",/*天气图标(白天) 天气类型 icon*/ wtIcon2: "00",/*天气图标(夜间) 天气类型 icon*/ wtTemp1: "14",/*温度(白天)*/ wtTemp2: "1",/*温度(夜间)*/ wtWindId1: "8",/*风向Id(白天)*/ wtWindId2: "8",/*风向Id(夜间)*/ wtWindNm1: "北风",/*风向*/ wtWindNm2: "北风",/*风向*/ /*此处风力与realTime节点不同,使用风力区间表示,wtWinpId与wtWinpNm对应*/ wtWinpId1: "2",/*风力Id(白天)*/ wtWinpId2: "0",/*风力Id(夜间)*/ wtWinpNm1: "4-5级",/*风力(白天)*/ wtWinpNm2: "小于3级",/*风力(夜间)*/ wtSunr: "06:16",/*日出时间*/ wtSuns: "18:26",/*日落时间(24小时制)*/ lifeIndex: { uv: { liNo: "uv", liNm: "紫外线指数", liAttr: "中等", liDese: "涂擦SPF大于15、PA+防晒护肤品。" }, xt: { liNo: "xt", liNm: "血糖指数", liAttr: "易波动", liDese: "气温多变,血糖易波动,请注意监测。" }, ct: { liNo: "ct", liNm: "穿衣指数", liAttr: "较冷", liDese: "建议着厚外套加毛衣等服装。" }, xc: { liNo: "xc", liNm: "洗车指数", liAttr: "较不宜", liDese: "风力较大,洗车后会蒙上灰尘。" }, kq: { liNo: "kq", liNm: "空气污染扩散指数", liAttr: "良", liDese: "气象条件有利于空气污染物扩散。" } } }, { dateYmd: "2019-03-22", week: "星期五", wtBlueSkyId: "1", wtId1: "1", wtId2: "1", wtNm1: "晴", wtNm2: "晴", wtIcon1: "00", wtIcon2: "00", wtTemp1: "15", wtTemp2: "3", wtWindId1: "7", wtWindId2: "7", wtWindNm1: "西北风", wtWindNm2: "西北风", wtWinpId1: "1", wtWinpId2: "1", wtWinpNm1: "3-4级", wtWinpNm2: "3-4级", wtSunr: "06:15", wtSuns: "18:27", lifeIndex: { uv: { liNo: "uv", liNm: "紫外线指数", liAttr: "中等", liDese: "涂擦SPF大于15、PA+防晒护肤品。" }, xt: { liNo: "xt", liNm: "血糖指数", liAttr: "不易波动", liDese: "天气条件好,血糖不易波动,可适时进行户外锻炼。" }, ct: { liNo: "ct", liNm: "穿衣指数", liAttr: "较冷", liDese: "建议着厚外套加毛衣等服装。" }, xc: { liNo: "xc", liNm: "洗车指数", liAttr: "较适宜", liDese: "无雨且风力较小,易保持清洁度。" }, kq: { liNo: "kq", liNm: "空气污染扩散指数", liAttr: "良", liDese: "气象条件有利于空气污染物扩散。" } } }, { dateYmd: "2019-03-23", week: "星期六", wtBlueSkyId: "1", wtId1: "1", wtId2: "1", wtNm1: "晴", wtNm2: "晴", wtIcon1: "00", wtIcon2: "00", wtTemp1: "13", wtTemp2: "4", wtWindId1: "8", wtWindId2: "5", wtWindNm1: "北风", wtWindNm2: "西南风", wtWinpId1: "1", wtWinpId2: "1", wtWinpNm1: "3-4级", wtWinpNm2: "3-4级", wtSunr: "06:13", wtSuns: "18:28", lifeIndex: { uv: { liNo: "uv", liNm: "紫外线指数", liAttr: "中等", liDese: "涂擦SPF大于15、PA+防晒护肤品。" }, xt: { liNo: "xt", liNm: "血糖指数", liAttr: "不易波动", liDese: "天气条件好,血糖不易波动,可适时进行户外锻炼。" }, ct: { liNo: "ct", liNm: "穿衣指数", liAttr: "较冷", liDese: "建议着厚外套加毛衣等服装。" }, xc: { liNo: "xc", liNm: "洗车指数", liAttr: "较适宜", liDese: "无雨且风力较小,易保持清洁度。" }, kq: { liNo: "kq", liNm: "空气污染扩散指数", liAttr: "中", liDese: "易感人群应适当减少室外活动。" } } }, ...... ], futureHour: [ /*逐小时天气预报(最多会有未来24个小时段) 字段说明与realTime节点相同*/ { dateYmdh: "2019-03-20 14:00:00", wtId: "3", /*天气编号 天气类型 wtId*/ wtNm: "阴", /*天气 天气类型 wtNm*/ wtIcon: "02", /*天气图标 天气类型 wtIcon*/ wtTemp: "19", /*温度℃*/ wtWindId: "7", /*风向ID*/ wtWindNm: "西北风", /*风向*/ /*此处风力与realTime节点不同,使用风力区间表示,wtWinpId与wtWinpNm对应*/ wtWinpId: "0", /*风力Id*/ wtWinpNm: "小于3级" /*风力*/ }, { dateYmdh: "2019-03-20 15:00:00", wtId: "8", wtNm: "小雨", wtIcon: "07", wtTemp: "19", wtWindId: "6", wtWindNm: "西风", wtWinpId: "0", wtWinpNm: "小于3级" }, { dateYmdh: "2019-03-20 16:00:00", wtId: "8", wtNm: "小雨", wtIcon: "07", wtTemp: "18", wtWindId: "6", wtWindNm: "西风", wtWinpId: "0", wtWinpNm: "小于3级" }, { dateYmdh: "2019-03-20 17:00:00", wtId: "8", wtNm: "小雨", wtIcon: "07", wtTemp: "17", wtWindId: "7", wtWindNm: "西北风", wtWinpId: "0", wtWinpNm: "小于3级" }, ...... ] }
示例代码
<?php header("Content-Type:text/html;charset=UTF-8"); function nowapiRequest($postData,&$errMsg=''){ $apiUrl = 'https://sapi.k780.com/'; $useContext = stream_context_create(array( 'http' => array( 'method' => 'POST', 'header' => 'Content-type:application/x-www-form-urlencoded', 'content' => http_build_query($postData) ) )); if(!$resData=file_get_contents($apiUrl,false,$useContext)){ $errMsg = 'ERR_CONNECT'; return false; } if(!$arrData=json_decode($resData,true)){ $errMsg = 'ERR_DECODE'; return false; } if($arrData['success']!=1){ $errMsg = $arrData['msgid'].' '.$arrData['msg']; return false; } return $arrData['result']; } $postData['app'] = 'weather.realtime'; $postData['weaid'] = '1'; $postData['ag'] = 'today,futureDay,lifeIndex,futureHour'; $postData['appkey'] = '10003';//替换成自己的appkey $postData['sign'] = 'b59bc3ef6191eb9f747dd4e83c99f2a4';//替换成自己的sign $postData['format'] = 'json'; $result = nowapiRequest($postData,$errMsg); print_r($errMsg); print_r($result);
#python import json,urllib from urllib import urlencode url = 'http://api.k780.com' params = { 'app' : 'weather.realtime', 'weaid' : '1', 'ag' : 'today,futureDay,lifeIndex,futureHour', 'appkey' : 'APPKEY', 'sign' : 'SIGN', 'format' : 'json', } params = urlencode(params) f = urllib.urlopen('%s?%s' % (url, params)) nowapi_call = f.read() #print content a_result = json.loads(nowapi_call) if a_result: if a_result['success'] != '0': print a_result['result']; else: print a_result['msgid']+' '+a_result['msg'] else: print 'Request nowapi fail.';
import java.net.*; import java.io.*; public class test{ public static void main(String args[]) throws Exception { URL u=new URL("http://api.k780.com/?app=weather.realtime&weaid=1&ag=today,futureDay,lifeIndex,futureHour&appkey=APPKEY&sign=SIGN&format=json"); InputStream in=u.openStream(); ByteArrayOutputStream out=new ByteArrayOutputStream(); try { byte buf[]=new byte[1024]; int read = 0; while ((read = in.read(buf)) > 0) { out.write(buf, 0, read); } } finally { if (in != null) { in.close(); } } byte b[]=out.toByteArray( ); System.out.println(new String(b,"utf-8")); } }
curl "http://api.k780.com/?app=weather.realtime&weaid=1&ag=today,futureDay,lifeIndex,futureHour&appkey=10003&sign=b59bc3ef6191eb9f747dd4e83c99f2a4&format=json"
流量包套餐说明:
买多少用多少,多买有优惠,10元起买,适合大多数应用场景.
规格 | 套餐名称 | 价格 | 描述 |
---|---|---|---|
201 | 流量包 1000 次 | 10 元 | 约 0.01 元/次 |
202 | 流量包 12500 次 | 100 元 | 约 0.008 元/次 |
203 | 流量包 33333 次 | 200 元 | 约 0.006 元/次 |
205 | 流量包 125000 次 | 500 元 | 约 0.004 元/次 |
206 | 流量包 500000 次 | 1000 元 | 约 0.002 元/次 |
208 | 流量包 3000000 次 | 3000 元 | 约 0.001 元/次 |
209 | 流量包 5555555 次 | 5000 元 | 约 0.0009 元/次 |
210 | 流量包 12500000 次 | 10000 元 | 约 0.0008 元/次 |
包月套餐说明:
适合调用量比较平均的高频应用场景;有配额限制,超出配额会被暂停调用1小时,请留意购买足够配额.
规格 | 套餐名称 | 价格 | 描述 |
---|---|---|---|
102 | 2000 次配额/每小时 | 96 元/月 | |
103 | 3000 次配额/每小时 | 130 元/月 | |
104 | 5000 次配额/每小时 | 218 元/月 | |
105 | 10000 次配额/每小时 | 439 元/月 | |
106 | 20000 次配额/每小时 | 883 元/月 | |
107 | 30000 次配额/每小时 | 1332 元/月 | |
108 | 40000 次配额/每小时 | 1786 元/月 | |
109 | 50000 次配额/每小时 | 2244 元/月 | |
110 | 100000 次配额/每小时 | 4800 元/月 | - |
免费试用套餐说明:
商用请选择付费套餐。 (系统繁忙或极端情况下,优先保证付费用户使用).
规格 | 套餐名称 | 价格 | 描述 |
---|---|---|---|
0 | 试用套餐 50 次/每小时 | 0 元/月 | 可免费续约(现),试用次数不够可联系客服增加 |