根据微信文档,建议定时刷新access_token,逻辑服务器去取这个access_token,从而保证access_token调用不超过限制,并且总是有效。
$ make install
$ _rel/wt/bin/wt start
$ mkdir wechat-token
$ tar zxf linux-amd64.tar.gz -C wechat-token
$ cd wechat-token
$ ./bin/wt start
$ 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'
,这个问题有同学遇到过吗?
1
cevincheung 2015-06-06 05:45:48 +08:00
为啥一个小daemon就可以解决的问题非得要搞这么复杂……- -#
|
2
goofansu OP |
3
ETiV 2015-06-06 06:40:26 +08:00 via iPhone
我大nodejs写个setInterval 就搞定了
|
4
cevincheung 2015-06-06 06:43:30 +08:00
|
5
deben 2015-06-06 07:08:57 +08:00 via Android
随时用随时从数据库里面读出来,发现过期再请求一个并存入数据库,难道大家不这样做?
|
9
Dongdong36 2015-06-06 09:56:45 +08:00 1
文档说有效时间是7200s左右,所以每隔(7200 - 10)刷新一次access_token就可以了
|
10
goofansu OP @Dongdong36 对,我给的那个链接里建议1小时,所以我就定了1小时
|
11
Culm 2015-06-07 19:12:17 +08:00
看到必要条件,整个人都斯巴达了
|
12
herold519 2015-06-09 10:53:00 +08:00
过度设计了。。
|