
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
公众平台给我们提供了很多微信的接口供我们调用,但是公众号对于接口的调用也是有限制的,说明具体如下:
1.每次调用微信的接口之前我们都需要请求一次access_token
那么什么是access_token呢?微信公众平台开发者文档给我们的解释:是公众号的全局唯一票据,公众号调用各接口时都需使用access_token。开发者需要进行妥善保存。access_token的存储至少要保留512个字符空间。access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效。
那么怎么获取access_token呢?公众号可以使用AppID和AppSecret调用本接口来获取access_token。AppID和AppSecret可在微信公众平台官网-开发者中心页中获得(需要已经成为开发者,且帐号没有异常状态),注意调用所有微信接口时均需使用https协议。
请求方式(http get):https://api.weixin.qq.com/cgi-bi ... ID&secret=APPSECRET
参数说明:
参数 | 是否必须 | 说明 | grant_type | 是 | 获取access_token填写client_credential | appid | 是 | 第三方用户唯一凭证 | secret | 是 | 第三方用户唯一凭证密钥,即appsecret |
返回说明:
正常情况下,微信会返回下述JSON数据包给公众号:
- {"access_token":"ACCESS_TOKEN","expires_in":7200}
复制代码参数 | 说明 | access_token | 获取到的凭证 | expires_in | 凭证有效时间,单位:秒 |
错误时微信会返回错误码等信息,JSON数据包示例如下(该示例为AppID无效错误):
- {"errcode":40013,"errmsg":"invalid appid"}
复制代码 上面已经详细的对access_token进行了说明,接下来就是如何去获取access_token,有两种方式,一种是直接使用官方提供的接口调试工具,另一种是直接请求接口。
那么问题来了,我们怎么保存access_token呢?因为上面说了,access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效。并且为了减轻服务器压力,微信接口每日调用的次数都是有限制,不可能让大家毫无限制的请求。具体接口调用频率限制,大家可以去开发者文档查看详情。
2.使用memcache保存access_token
当然,你也可以通过其他方式来缓存access_token,只要保证两个小时内不重复获取即可,这里我使用memcache来作为示例。在sae后台,服务管理里面有memcache服务,我们直接启用即可(需要消耗云豆),那样我们能够直接使用memcache来缓存accecc_token了。
使用方式:
- $mc = memcache_init();
- if(mc==false)
- {
- echo "mc init failedn";
- }
- $ACCESS_TOKEN = memcache_get($mc, "token");
- if(empty($ACCESS_TOKEN)==true)
- {
- $APPID="wx2d928b678f508170";
- $APPSECRET="2f99076fde3386b88968489cfebccef0";
- $ACC_TOKEN_URL="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$APPID."&secret=".$APPSECRET;
- $json_data=file_get_contents($ACC_TOKEN_URL);
- $result=json_decode($json_data);
- $ACC_TOKEN=$result->access_token;
- echo $ACC_TOKEN;
- memcache_set($mc, "token", $ACC_TOKEN, 0, 7200);//参数:memcache句柄、键值、数据、标记(默认0)、有效期(过期会被服务器清除)
- }
复制代码 这样我们以后就可以在调用接口时直接使用ACCESS_TOKEN作为参数access_token的值就可以了,很简单吧:) |
|
|
|
|
|