您当前的位置: 首页 > 

11 公众号开发 - 获取接口调用凭据

杨林伟 发布时间:2019-09-06 11:19:34 ,浏览量:2

access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access_token。开发者需要进行妥善保存。access_token的存储至少要保留512个字符空间。access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效。

接口说明

请求方法:

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

参数说明: 在这里插入图片描述 返回值:

正确时返回的JSON数据包如下:

{
    "access_token":"ACCESS_TOKEN",
    "expires_in":7200
}

在这里插入图片描述 错误时微信会返回JSON数据包如下:

{
    "errcode":40013,
    "errmsg":"invalid appid"
}
代码实现
class AccessToken(object):
    """微信接口调用Token"""
    _access_token = {
        "token":"",
        "updatetime":datetime.datetime.now()
    }

    @classmethod
    @tornado.gen.coroutine
    def update_access_token(cls):
        """更新access_token"""
        client = AsyncHTTPClient()
        url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=%s&secret=%s" % (WECHAT_APPID, WECHAT_APPSECRET)
        resp = yield client.fetch(url)
        print resp.body
        ret = json.loads(resp.body)
        token = ret.get("access_token")
        if token:
            cls._access_token["token"] = token
            cls._access_token['updatetime'] = datetime.datetime.now()

    @classmethod
    @tornado.gen.coroutine
    def get_access_token(cls):
        """获取access_token"""
        if not cls._access_token["token"] or (datetime.datetime.now()-cls._access_token["updatetime"]).seconds>=6600:
            yield cls.update_access_token()
        raise tornado.gen.Return(cls._access_token["token"])
关注
打赏
1688896170
查看更多评论

杨林伟

暂无认证

  • 2浏览

    0关注

    3183博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.0793s