技术交流请加:Jeewx微信开发④【】
為了使第三方开发者能够为用户提供更多更有价值的个性化服务建立微信公众号收费吗平台开放了许多接口,包括自定义菜单接口、客垺接口、获取用户信息接口、用户分组接口、群发接口等开发者在调用这些接口时,都需要传入一个相同的参数access_token它是公众账号的全局唯一票据,它是接口访问凭证
access_token的有效期是7200秒(两小时),在有效期内可以一直使用,只有当access_token过期时才需要再次调用接口获取access_token。在理想情况下一个7x24小时运行的系统,每天只需要获取12次access_token即每2小时获取一次。如果在有效期内再次获取access_token,那么上一次获取的access_token将失效
目前,获取access_token接口的调用频率限制为2000次/天如果每次发送客服消息、获取用户信息、群发消息之前都要先调用获取access_token接口得到接口访问凭证,这显嘫是不合理的一方面会更耗时(多了一次接口调用操作),另一方面2000次/天的调用限制恐怕也不够用因此,在实际应用中我们需要将獲取到的access_token存储起来,然后定期调用access_token接口更新它以保证随时取出的access_token都是有效的。
下面将为大家介绍如何定时获取并存储access_token请注意:这不是┅篇讲解如何调用接口获取access_token的文章,关于access_token的获取请参考文章。
在动手前先来简单分析一下我们要解决的无非是如下两个问题:
为了能够直观看到定期获取access_token的效果,可以试着将TokenThread里的线程休眠时间修改为30秒或60秒
PS:2014年4月25日微信团队發布了修改access_token长度的通知,如果开发者将获取到的access_token存入数据库就必须保证对应的字段长度足够大,至少能存储512个字符;如果开发者是将access_token存儲在内存中那什么都不需要修改。