微信小程序开发——调用免费天气api接口(高德、天气API)

本文介绍了如何在微信小程序中使用高德和天气API提供的接口获取天气信息。首先,详细阐述了在高德平台注册获取Key的步骤,然后讲解如何调用API接口并配置合法域名。接着,展示了使用天气API注册获取APPID和APPSecret,并调用专业实况天气v61接口的过程。通过示例代码,演示了如何在小程序中实现天气信息的网络请求及数据显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开发一个现实天气信息的微信小程序,主要的是从网上请求到天气信息数据,网上也有很多介绍免费天气api接口的,我试了好多没法用,或者就是像百度api一样弄了半天没搞明白,我这里使用了高德和“天气API”提供的两种天气api接口。

一、使用高德天气接口:

网址链接为:

https://lbs.amap.com/api/webservice/guide/api/weatherinfo

(一)注册并获取Key

使用时候需要注册获取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;
    wx.request({
   
      url: 'https://restapi.amap.com/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

<
### 微信小程序中集成高德地图API实现天气模块 #### 准备工作 为了在微信小程序中成功调用高德地图API来获取并展示天气信息,需先完成如下准备工作: - 注册成为高德开放平台开发者,并创建应用以获得API Key[^1]。 - 安装必要的依赖库或SDK以便于后续开发。 #### 获取当前位置坐标 利用微信内置的位置服务接口`wx.getLocation()`可轻松取得用户的当前地理位置经纬度数据。此操作对于查询特定地点的实时气象状况至关重要。 ```javascript // 调用微信定位能力 wx.getLocation({ type: 'wgs84', // 默认为 wgs84 返回 gps 坐标,gcj02 返回可用于 wx.openLocation 的坐标 success(res) { const latitude = res.latitude; const longitude = res.longitude; console.log(`纬度:${latitude}, 经度:${longitude}`); } }); ``` #### 请求天气预报数据 有了精准的地理坐标之后,则可以通过HTTP请求的方式向高德地图Web服务发送GET请求,访问生活助手下的天气查询接口。注意替换下面URL中的`${key}`为你自己的API密钥,同时将`${location}`设置成之前得到的实际经度/维度值组合字符串形式(如:'39.90403,116.40752')。 ```javascript const url = `https://restapi.amap.com/v3/weather/weatherInfo?key=${your_api_key}&city=${location}`; wx.request({ method:'GET', url:url, header:{}, data:{}, success:function(response){ let weatherData=response.data.lives[0]; console.log(weatherData); /* 进一步处理返回的数据 */ }, fail:function(error){console.error('Error:', error);} }) ``` 上述代码片段展示了如何发起一次简单的AJAX调用来检索指定区域内的即时气温和其他环境参数。实际项目里可能还需要考虑错误处理机制、缓存策略等问题。 #### 展现天气详情页面 最后,在前端界面部分设计一个美观实用的信息卡片用于呈现最终结果给终端用户查看。这里推荐采用WeUI组件库提供的Card样式作为模板基础,再配合自定义CSS美化效果达到最佳视觉体验。 ```html <view class="weather-card"> <text>城市名称</text> <image src="{{iconUrl}}"></image> <text>{{temperature}}</text> <button bindtap="refreshWeather">刷新</button> </view> <!-- style.css --> .weather-card{ padding:20rpx; border-radius:10rpx; } ``` 以上就是基于微信小程序框架下整合第三方服务商——即高德地图所提供的天气信息服务的整体流程介绍和技术要点分析[^2]。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值