接口编号: 506 | 接口名称: 天气预报 | 连接应用: 8179个 |
应用编号: 106007 | 应用标识: weather.history | 服务商: NowAPI |
说明
说明: 1. 历史天气数据接口可获取自2019-01-01之后,包括当天(若需要2015-2019的数据请联系客服说明需求)。 2. 历史数据来自实时天气(weather.realtime)中实时数据归档存储. 3. 历史数据支持跨度较大,极端情况下会存在极小部分数据丢失的情况; 另外在行政区重新划分调整时(新增或下线的相关城市),在某此时间节点会出现一定的数据断层,城市列表可参考weather.city接口中upddate(更新时间)、mk(当前可用状态)和remark(备注)栏位。 4. 气象数据并非每小时都会更新,只有存在更新的情形时才会插入新的数据. 5. 因系统更新原因2019年3月15前数据无风速,能见度,降雨量,气压hpa. 6. 近期存在恶意大量注册帐号采集历史数据行为,即日起关闭历史天气试用功能,如需试用请购买10元流量包套餐. 扣费扣量特别说明(扣量: 包月套餐扣可用配额次数,流量包套餐扣可用次数) 1. result.dtCount节点值为数据条数,每5条数据或不足5条扣量1次;例如:数据条数为4扣量1次,为6扣量2次。 测试示例:https://sapi.k780.com/?app=weather.history&weaId=1&dateYmd=20220101-20220102&appkey=10003&sign=b59bc3ef6191eb9f747dd4e83c99f2a4&format=json (示例中sign会不定期调整)
请求网址
HTTP: http://api.k780.com
HTTPS: https://sapi.k780.com
请求方式
Get/Post
请求Header
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
请求参数
参数 | 类型 | 是否必须 | 备注 |
---|---|---|---|
weaId | string | 是 | (推荐) 通过weaId查询,例: 1 城市列表城市列表中weaId (参数weaId,cityId,cityNm,cityIp,wgs84ll中取1个作为查询条件) |
cityId | number | 否 | (推荐) 城市编号查询,例: 101010100 城市列表城市列表中cityId |
cityNm | string | 否 | 通过中文城市名查询,例: 北京 城市列表城市列表中cityNm (带入前urlencode) |
cityIp | string | 否 | 通过ip地址查询,例: 202.104.153.201 (不推荐) |
wgs84ll | string | 否 | 通过经纬度坐标查询,例:116.442708,39.917344 (付费用户可用) |
dateYmd | string | 是 | 查询的日期范围段 yyyymmdd-yyyymmdd格式,20220101-20220201 (不支持跨年)
注意:单城市全年大约有8500+数据,单次调取将扣量1700+次,请预留足够余量. |
appkey | string | 是 | 使用API的唯一凭证 获取 |
sign | string | 是 | md5后的32位密文,登陆用. 获取 |
format | {json|xml} | 否 | 返回数据格式 |
Json请求示例
http://api.k780.com/?app=weather.history&weaId=城市编号&dateYmd=查询的日期段&appkey=APPKEY&sign=SIGN&format=json
Json返回示例
1.正常返回 { success: "1", result: { dtQuery: "20220101-20220102", dtCount: "39", dtAppend: { weaId: "1", cityNm: "北京", cityId: "101010100", areaNm_1: "北京", areaNm_2: "城区", areaNm_3: "" }, dtList: [{ upTime: "2022-01-01 09:15:00", /*数据更新时间*/ /*以下字段解释与weather.realtime中一致*/ wtId: "2", /*天气编号 天气类型 wtId*/ wtNm: "多云", /*天气 天气类型 wtNm*/ wtIcon: "01", /*天气图标 天气类型 wtIcon*/ wtTemp: "-2", /*温度℃*/ wtHumi: "57", /*湿度%*/ wtWindId: "1", /*风向ID (见面页上方风向ID对照表)*/ wtWindNm: "东北风", /*风向*/ wtWinp: "1", /*风力 单位:级 (非风力ID,该值直接为风力级数)*/ wtWins: "3",/*风速 单位:km/h*/ wtAqi: "52", /*pm2.5 aqi*/ wtVisibility: "10.00", /*能见度km*/ wtRainfall: "0.00", /*降雨量mm 注:距离上次更新至upTime时间的降雨量*/ wtPressurel: "1021" /*气压hpa*/ }, .... ] } 2.异常或无数据 { success: "0", msgid: "...", msg: "..." } ..............
示例代码
<?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.history'; $postData['weaId'] = '城市编号'; $postData['dateYmd'] = '查询的日期段'; $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.history', 'weaId' : '城市编号', 'dateYmd' : '查询的日期段', '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.history&weaId=城市编号&dateYmd=查询的日期段&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.history&weaId=城市编号&dateYmd=查询的日期段&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小时,请留意购买足够配额.
规格 | 套餐名称 | 价格 | 描述 |
---|---|---|---|
101 | 1000 次配额/每小时 | 49 元/月 | - |
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 元/月 | 可免费试用3个月,延长试用或次数不够可联系客服增加 |