自定义菜单和高级接口-获取Access Token

时间:2022-04-23 06:04:54

自定义菜单和高级接口都需要使用APPID和AppSecret来创建。

对应暂时没有这些权限的微信公众账号,开发者可以申请测试账号来体验和测试体验微信公众平台的所有高级接口的功能。链接 

https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Requesting_an_API_Test_Account.html

 

 获取Access Token 

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

公众号和小程序均可以使用AppID和AppSecret调用本接口来获取access_token。AppID和AppSecret可在“微信公众平台-开发-基本配置”页中获得(需要已经成为开发者,且帐号没有异常状态)。**调用接口时,请登录“微信公众平台-开发-基本配置”提前将服务器IP地址添加到IP白名单中,点击查看设置方法,否则将无法调用成功。**小程序无需配置IP白名单。

注意:调用所有微信接口时,均需使用HTTPS协议

import requests
import time
import json

class Basic:
    def __init__(self):
        self.__accessToken = ‘‘
        self.__leftTime = 0

    def __real_get_accesstoken(self):
        appId = xxxx #测试账号的appid 和 ssecret
        appSecret = xxxx
        accesstoken_api = https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={0}&secret={1}.format(
            appId,appSecret
        )
        response = requests.get(accesstoken_api)
        accessToken = json.loads(response.text,encoding=utf-8)
        self.__accessToken = accessToken[access_token]
        self.__leftTime = accessToken[expires_in]

    def get_access_token(self):
        if self.__leftTime <10:
            self.__real_get_accesstoken()
        return self.__accessToken

    def run(self):
        while (True):
            if self.__leftTime > 10:
                time.sleep(2)
                self.__leftTime -= 2
            else:
                self.__real_get_access_token()