小程序下如何获取access_token「代码示例」

1. 什么是小程序access_token

access_token是小程序开发者凭借appid和appsecret向微信后台获取的全局唯一接口调用凭据。调用所有微信的API都需要先拿到access_token,每个access_token有效期为7200秒,过期需要及时重新获取。

值得注意的是,一个小程序拥有一个唯一的appid和appsecret,获取的access_token也是唯一的,多个小程序不可以公用同一个access_token。

2. 如何获取小程序access_token

小程序获取access_token需要向微信官方接口发送http请求,在请求头带上appid和appsecret参数,微信官方接口会验证并返回access_token给我们。

2.1 构造请求

构造获取access_token所需要的请求地址如下:

https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

其中,APPID和APPSECRET分别是你的小程序的appid和appsecret,需要在微信公众平台申请。grant_type表示获取access_token的权限类型,此处用的是client_credential。

2.2 发送请求

发送http请求可以使用Axios,也可以使用小程序自带的wx.request()方法。以下代码演示了如何使用Axios发送获取access_token的请求:

const axios = require('axios');

const appid = 'your_appid';

const appsecret = 'your_appsecret';

const url = \`https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=\${appid}&secret=\${appsecret}\`;

axios.get(url)

.then(response => {

console.log(response.data.access_token);

})

.catch(error => {

console.log(error);

});

以上代码中,你需要将自己的appid和appsecret替换掉your_appid和your_appsecret。这个请求是一个GET请求,返回的数据中access_token字段就是我们需要的access_token。

2.3 处理返回数据

我们已经成功发送了一个获取access_token的请求,接下来需要处理返回的数据。以下代码演示了如何处理获取到的access_token:

const axios = require('axios');

const appid = 'your_appid';

const appsecret = 'your_appsecret';

const url = \`https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=\${appid}&secret=\${appsecret}\`;

axios.get(url)

.then(response => {

const access_token = response.data.access_token;

const expires_in = response.data.expires_in;

console.log(access_token, expires_in);

})

.catch(error => {

console.log(error);

});

以上代码中,我们成功获取到了access_token,并将其打印在控制台上。此外,返回数据中还有一个字段expires_in表示access_token的有效期时间。

3. access_token的作用

在小程序开发中,获取access_token是必不可少的,因为access_token是调用所有微信API的凭据,没有access_token就无法调用微信API。

下面列举几个常用的微信API,它们都需要access_token:

获取openid:使用wx.login()方法登录获取code,然后向微信官方接口换取openid和access_token。

获取用户信息:使用wx.getUserInfo()方法获取用户信息,该方法需要用户授权。

向用户发送模板消息:使用wx.request()方法向微信官方接口发送模板消息。

上传图片:使用wx.uploadFile()方法上传图片到微信服务器。

由此可见,获取access_token是开发小程序的基本操作,开发者必须掌握。