在使用微信公众号接口中,需要access_token。access_token是公众号的全局唯一凭证。可以理解为我们服务器的身份证。
总结以上说明,access_token需要做到以下两点:
1.因为access_token有2个小时的时效性,要有一个机制保证最长2个小时重新获取一次;
2.因为接口调用上限每天2000次,所以不能调用太频繁;
下面是核心代码:
/*** 获取全局访问token*/
async getGlobalToken(): Promise<string> {if (this._globalToken && Date.now() < this._globalTokenTime) {return this._globalToken;}let url = `https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=${this.options.appid}&secret=${this.options.secret}`;const data = await client.get(url);const text = data.text;// 失效时间const { access_token, expires_in } = JSON.parse(text);this._globalToken = access_token;this._globalTokenTime = Date.now() + expires_in * 1000 - 5000;return this._globalToken;
}
微信也有自己的debug调试工具:https://mp.weixin.qq.com/debug
可以自己试试看。