众所周知,在进行微信公众号的开发时,有一个比较关键的名词---access_token
这个东西是公众号的全局唯一接口调用凭据,并且公众号调用各接口时都需使用access_token。
例如自定义菜单的配置,客服接口发送消息,还有获取用户信息等一系列的操作,都需要使用。
access_token的获取上限:公众号未认证时,好像是有两千次的上限。认证后的公众号,他有100000次的上限。千万不要觉得100000次的上限很多,如果用户量很大,100000次的上限还是不够多。而每个access_token是有一个有效时长的,默认为2个小时(7200s)。所以,我们需要妥善保管这个access_token。
先和大家说一下我保存这个access_token的思路(我是存在数据库的):
1.首先,用户在调用需要access_token的接口的时候,先查询数据库里保存access_token的值是否存在。
2.如果access_token存在的话,判断此access_token是否有效。如果有效的话,直接返回此值。
3.如果没有效,则调用获取access_token的接口,再次获取,并且更改数据库中已经存在的access_token值。
4.接第一步骤,如果access_token不存在,则调用获取access_token的接口,将获取到的数据保存在数据库里。
基本上思路就是这样,现在和大家说一下怎么判断access_token值是否有效。
在请求获取access_token的接口时,如果请求成功,他会返回如下字段:
{"access_token":"ACCESS_TOKEN","expires_in":7200}
我们可以根据当前时间戳(注意是10位的),来加上那个7200,就是他的过期时间戳。如果保险一点的话,可以再把这个过期时间减上一分钟,或者五分钟。然后判断当前时间戳(10位)是否小于过期时间戳,就为有效。否则无效。
以上,就是我在处理access_token时所采用的方法,有什么不足希望大家指正,当然也可以保存在本地文件上,办法很多。
贴代码
A