凡星
凡星
  • 发布:2021-04-28 16:35
  • 更新:2021-04-28 16:35
  • 阅读:734

公众号开发(十一)实现access_token获取

分类:uni-app

要获取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 关注 分享

要回复文章请先登录注册