什么是天气预报API接口?如何获取天气预报API?

473 阅读5分钟

什么是天气预报API接口?

天气的好坏和人们的生活、工作息息相关,每天的天气如何?总是牵动着人们的心,关注天气就行了人们茶余饭后的话题了。如何获得准确的天气预报?还得从天气预报API接口说起。

天气预报API是提供未来天气预报数据的一个API调用接口,通过此接口可以获取一个城市的温度、PM2.5、湿度、以及阴、晴、云、雾、风、霜、雪、雨、雷、电等气候信息,从而应用到自己编写的程序中。

挖数据API接口:

提供天气预报数据接口,数据来源中央气象台天气信息,便捷查询今日天气,周末天气,一周天气预报,蓝天预报,天气预报,40日天气预报,还提供的生活指数、健康指数、交通指数、旅游指数,及时发布鄱阳气象预警信号、各类气象资讯,天氣信息。

Api文档:

子接口:

  • 实时天气预报查询
  • 获取城市名及代码

接口地址: https://登录后显示/api/74/187(支持:http/https)

返回格式:json,xml

请求方式:GET,POST

POST 请求需要设置Header头:Content-Type: application/x-www-form-urlencoded;charset=utf-8

请求说明:

名称必填类型说明示例 参数另存
appidString应用ID,在后台我的应用查看或者添加1
formatString返回数据格式类型,每个接口已经说明支持返回格式:json,xmljson
signString1.使用Md5方式验证,参数按一定规则md5后返回的字符串,详情点击这里阅读 2.使用Hash验证方式,直接跟上密钥即可。 通过我的应用里面修改验证方式52a9dbe274a5c537bbf7a53e2d66c09f
timeString请求时传递的当前服务器时间戳1545829466
wtr_idString可以是城市名称(厦门)、城市ID(101230201)、城市名全拼

返回参数说明:

名称必填类型说明示例 参数另存
codeidInteger状态码,返回10000状态都会进行计费。具体说明可查看状态码说明10000
curtimeString当前服务器时间戳1565941300
messageString请求状态说明操作成功!
retdataArray回数据集合,可能是数据、对象或者字符串
wr_15dayArray今天以及未来14天天气情况
wr_airString空气质量
wr_airqualityString
wr_aqiString空气质量指数,范围值请参考PM2.5检测网空气质量新准
wr_aqi_pm25String空气质量指数,范围值请参考PM2.5检测网空气质量新准40
wr_cityString城市ID,从这个接口【获取城市名及代码】获取101230201
wr_citynameString中文名称厦门
wr_dateString预报时间20190830
wr_fc24hourArray24小时天气预报,仅7天内
wr_hourString小时2时
wr_limitnumberString汽车限号
wr_nameenString城市拼音或者英文名xiamen
wr_njdString能见度15.55km
wr_qyString气压985
wr_rainString当前降雨量(毫米)0.0
wr_rain24hString24小时降雨量0
wr_richuString日出时间05:47
wr_riluoString日落时间18:28
wr_sdString空气温度68%
wr_tempString当前温度26
wr_tempfString华氏温度89
wr_timeString预报时间15:20
wr_todayArray当前天气数据
wr_wdString风向及等级南风<3级转西南风<3级
wr_wdcodeArray风向代码,当出现转变风向时,两代码不一致,后面为转变之后的代码 风向代码说明
wr_wdeString风向英文缩写SE
wr_weatherString天气 天气图标
wr_weathercodeArray天气代码,当出现天气出现变化时,两个代码不一致,后面为转变之后的天气代码天气代码
wr_weathereString英文天气Overcast
wr_wsString风速等级2级
wr_wscodeArray风速代码,当出现转变风速时,两代码不一致,后面为转变之后的代码 风速代码说明
wr_wseString风速<12km/h

状态码说明:

状态码说明
10000返回成功
10001appid必须指定,可以我的应用里面查看
10002sign值必须指定,加密规则请前往帮助中心查看
10003sign值验证不通过,加密规则请前往帮助中心查看
10004时差不能超过10分钟,可以不传递这个参数,注意时间戳单位是秒
10005appid错误,请检查appid值,前往会员中心->我的应用查看或添加
10006当前IP地址未授权,请前往用户中心->我的应用添加ip{@info}
10007应用被禁用,请联系客服处理
10008应用内没有该接口,请到我的应用里面添加这个接口
10009api接口不存在
10010您没有添加该api接口
10011api已经到期
10012没有订购任何api,请前往购买后再操作
10013该接口已经暂停使用
10014未知的错误,可以联系客服处理
10015参数个数错误
10019{@info}
10017time必须是整型
10018次数不足
10020子接口不存在,可能已经被关闭
10021服务器发生错误
10022帐户余额不足,请充值!
10023订单提交成功,等待回调结果
10024调试模式数据
10025查无数据

请求示例:

$method = 'GET'; //请求方式 GET,POST
$secretType = 'MD5'; //验证方式MD5,Hash 通过后台 我的应用去修改
$api_url = 'https://登录后显示/api/74/187';
$appid  =   '应用id';// 在后台我的应用查看;
$secret =   '应用密钥';// 在后台我的应用查看;
$data = array(
    'appid'=>  '1',
    'format'=>  'json',
    'time'=>  '1545829466',
    'wtr_id'=>  '101030100',
    );

$data['appid'] = $appid;
$data['time'] = time();//当前服务器时间

if('MD5' == $secretType){
    ksort($data); //按照键名对数组排序,为数组值保留原来的键。
    $md5String = '';
    foreach($data as $key=>$val){
        if(strlen($val)>0){ //过滤空值
            $md5String.=$key.$val;
        }
    }
    $secret = md5($md5String.$secret);
}
$data['sign'] = $secret;
if('GET'==$method){
    $sendUrl = $api_url.'?'.http_build_query($data); //把数据转换成url参数形式,a=b&c=d&e=f
    $result = file_get_contents($sendUrl);
}else{
    $header = ['Content-Type: application/x-www-form-urlencoded;charset=utf-8'];
    $ch = curl_init();
    if(is_array($data))$data = http_build_query($data);
    curl_setopt($ch, CURLOPT_URL, $api_url);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
    curl_setopt($ch, CURLOPT_POST, true);//POST
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    curl_setopt($ch, CURLOPT_AUTOREFERER, true);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($ch, CURLOPT_ENCODING,'gzip,deflate');
    $result = curl_exec($ch);
}
$result = json_decode($result,true);
print_r($result);

                        

现在越来越多的企业开始使用挖数据提供的天气预报api接口,好用是一方面,功能强大是另一方面,最重要的是大家对挖数据平台的信任和厚爱,相信在不久的将来,天气预报API一定能够给广大用户带来良好、满意的体验!