⼩程序开发——调⽤免费天⽓api接⼝(⾼德、天⽓API)
⼩程序开发——调⽤免费天⽓api接⼝
开发⼀个现实天⽓信息的⼩程序,主要的是从⽹上请求到天⽓信息数据,⽹上也有很多介绍免费天⽓api接⼝的,我试了好多没法⽤,或者就是像百度api⼀样弄了半天没搞明⽩,我这⾥使⽤了⾼德和“天⽓API”提供的两种天⽓api接⼝。
⼀、使⽤⾼德天⽓接⼝:
⽹址链接为:
(⼀)注册并获取Key
百度api接口使⽤时候需要注册获取Key,因为是阿⾥旗下公司,可以使⽤⽀付宝扫码注册。注册后在图中所⽰的页⾯中点击 申请Key:
在打开的页⾯中点击右上⾓的“创建新应⽤”,填写应⽤名称和类型,我这⾥随便把应⽤名称定为Weather,创建好之后点击“添加”
可以给Key添加名字,服务平台注意要选择 Web服务,这个选项才能使⽤天⽓查询API(这⾥不需要再点击它了)
提交之后就可以到申请的Key了,这时候就可以去使⽤API了。
(⼆)调⽤API接⼝
页⾯中介绍了接⼝地址和请求⽅式,以及请求参数,应该⽐较好理解。
注意,使⽤开发者⼯具进⾏开发时,需要将⽹址添加到request的合法域名中,如果只是调试⽽不发布,可以在开发者⼯具本地设置中勾选不校验合法域名、web-view(业务域名)、TLS版本以及HTTPS证书,不过这样的设置是没法发布的,最后发布还是需要将⽹址添加到request的合法域名中。
根据请求参数,我们需要添加Key和city城市编码,我们可以先测试下:
新建项⽬后,在index.js(或者新建⼀个页⾯)中加⼊以下代码:
//index.js
//获取应⽤实例
const app =getApp()
Page({
data:{
},
onLoad:function(){
var self =this;
url:'restapi.amap/v3/weather/weatherInfo',
data:{
'key':'***************************',//填⼊⾃⼰申请到的Key
'city':'120102',
},
header:{
'content-type':'application/json'
},
success:function(res){
console.log(res.data);
}
})
}
})
上⾯代码会在页⾯加载好后向⽹络请求数据,在console中可以看到返回的信息:
其中返回的数据在api介绍页⾯中都有介绍,默认返回的是实况天⽓,也可以在请求中将extensions选项设置为all,就可以得到当天以及以后三天的天⽓信息,如图:
得到这些信息之后,后⾯的步骤就简单了,可以在页⾯中展⽰出来,我这⾥写了⼀个很简单的展⽰页⾯,没有调格式,有兴趣的可以再编写wxss⽂件调整样式。
index.wxml
<!--index.wxml-->
<view class="content">
<view class="info">城市编码:{{adcode}}</view>
<view class="info">所在省份:{{province}}</view>
<view class="info">城市:{{city}}</view>
<view class="info">天⽓现象:{{weather}}</view>
<view class="info">实时⽓温:{{temperature}}℃</view> <view class="info">风向:{{winddirection}}</view>
<view class="info">风⼒:{{windpower}}</view>
<view class="info">空⽓湿度:{{humidity}}%</view>
<view class="info">发布时间:{{reporttime}}</view>
</view>
index.js
//index.js
//这⾥只获取了实况天⽓信息,没有⽤预测信息
//获取应⽤实例
const app =getApp()
Page({
data:{
adcode:'',
city:'',
humidity:'',
province:'',
reporttime:'',
temperature:'',
weather:'',
winddirection:'',
windpower:'',
},
onLoad:function(){
var self =this;
url:'restapi.amap/v3/weather/weatherInfo',      data:{
'key':'*****************************',//改为⾃⼰申请的Key
'city':'120102',
'extensions':'base'
},
header:{
'content-type':'application/json'
},
success:function(res){
console.log(res.data);
self.setData({
adcode: res.data.lives[0].adcode,
city: res.data.lives[0].city,
humidity: res.data.lives[0].humidity,
province: res.data.lives[0].province,
temperature: res.data.lives[0].temperature,
reporttime: res.data.lives[0].reporttime,
weather: res.data.lives[0].weather,
winddirection: res.data.lives[0].winddirection,
windpower: res.data.lives[0].windpower
})
}
})
}
})
结果如图:
⼆、使⽤“天⽓API”提供的接⼝
(⼀)注册获取APPID和APPSecret
⽐较简单,就是注册完之后就可以在控制台中到APPID和APPSecret了:
(⼆)调⽤API接⼝
⽐如我们想查看实况天⽓,可以点击进⼊**“专业实况天⽓v61”**
此时可以看到,在给出的页⾯中会出现⼀条请求⽰例,并且⽰例中已经将所申请到的APPID和APPSecret,以及version(这个api在申请数据时需要提供的参数)都包含在⾥⾯了: