要获取access_token必须先完成前面几节的配置:
前端网页托管域名配置:https://bctos.cn/doc/18/1955
公众号域名配置:https://bctos.cn/doc/18/1959
公众号IP白名单配置:https://bctos.cn/doc/18/1963
云函数缓存机制实现:https://bctos.cn/doc/18/1964
确保上面的配置都好了之后,就可以进行access_token的获取了。
由于access_token每天请求的次数有限,必须统一在后端云函数里获取并缓存起来,因此我们的实现代码如下
完整的代码请在官方插件市场下载:https://ext.dcloud.net.cn/plugin?id=4829
async function getAccessToken() {
//先从缓存获取,如果存在就要不重复从微信获取
let key = '' + appId
let token = await cache(key)
if (token !== false) {
console.log('token缓存已存在', token);
return token
}
//这里要使用代理网址请求
let url = 'http://weixin-agent.bctos.cn/cgi-bin/token?grant_type=client_credential'
url += '&secret=' + appSecret + '&appId=' + appId
let res = await uniCloud.httpclient.request(url, {
method: 'GET',
data: {}
})
let result = JSON.parse(res.data.toString())
if (typeof(result.access_token) == "undefined") {
console.log('重新获取的AccessToken失败了', result)
return false
} else {
console.log('重新获取的AccessToken的结果:', result)
await cache(key, result.access_token, result.expires_in)
return result.access_token
}
}
如果获取失败,可以在uniCloud的WEB后台里的云函数日志中看到微信返回了什么错误信息
0 个评论
要回复文章请先登录或注册