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是开发小程序的基本操作,开发者必须掌握。