Wechat-Token
根据微信文档,建议定时刷新access_token,逻辑服务器去取这个access_token,从而保证access_token调用不超过限制,并且总是有效。
安装
必要条件
- 本机安装了redis,默认端口6379
- 设置WECHAT_APP_ID和WECHAT_APP_SECRET环境变量
可选条件
- 从源码安装程序需要Erlang
源码安装
$ make install
$ _rel/wt/bin/wt start
从release中下载(当前仅支持linux和osx)
$ mkdir wechat-token
$ tar zxf linux-amd64.tar.gz -C wechat-token
$ cd wechat-token
$ ./bin/wt start
原理
- 每小时刷新一次access_token
- 刷新access_token后立即刷新jsapi_ticket
- 应用启动时判断access_token是否有效,无效则立即刷新
数据保存格式
$ redis-cli
127.0.0.1:6379> HMGET access_token value expire_time
1) "Z47I_cG9bgNm6Z44rStZd3nO6G5-c0kpBpJGdHoCfaf3Ct8R4WkuVy79FvkOgXr2CYTniDFLsmincjGtfEF7JQZU4y3ZCPDnjMmVMWLTStg"
2) "1433506616"
127.0.0.1:6379> HMGET jsapi_ticket value expire_time
1) "sM4AOVdWfPE4DxkXGEs8VCdT_ZNcLoZWDBSBEduHE1WNupuOm2yNNmmRimx8u7lQCuD_5QpQhVSNNQ0vbRdoZw"
2) "1433506616"
项目地址: https://github.com/goofansu/wechat-token
欢迎star, fork和pull request
这个项目本身没难度,就是为了省去维护access_token的步骤。你的应用在调用微信api时,只需要从redis中读取access_token就行了。
接下来考虑提供一个docker的镜像,做到传入appid和secret就能使用服务。
说到docker就有一个问题:在阿里云上根据docker的官方文档安装docker,docker -d报错Could not find a free IP address range for interface 'docker0',这个问题有同学遇到过吗?