使用dcloud全家桶开发公众号H5系统

实现access_token获取

小韦云科技-区块链+小程序+公众号+商城+分销+直播+企业官网+外贸电商-为您提供优质的开发服务-电话/微信联系:18123611282

要获取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 = 'getAccessToken-' + 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后台里的云函数日志中看到微信返回了什么错误信息

本文由小韦云原创,转载请注明出处:https://bctos.cn/doc/18/1965,否则追究其法律责任

关键词:access_token 公众号

广告位招商