+发表新主题
查看: 1417|回复: 0

[开发入门] 微信开发入门系列教程(二)-- 获取接口调用凭据access_token

[复制链接]

[开发入门] 微信开发入门系列教程(二)-- 获取接口调用凭据access_token

[复制链接]
风的传说自由 发表于 2015-9-16 19:54:38 浏览:  1417 回复:  0 [显示全部楼层] 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

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数据包给公众号:

  1. {"access_token":"ACCESS_TOKEN","expires_in":7200}
复制代码
参数说明
access_token获取到的凭证
expires_in凭证有效时间,单位:秒


错误时微信会返回错误码等信息,JSON数据包示例如下(该示例为AppID无效错误):

  1. {"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了。

使用方式:

  1. $mc = memcache_init();

  2. if(mc==false)

  3. {

  4.         echo "mc init failedn";

  5. }

  6. $ACCESS_TOKEN = memcache_get($mc, "token");

  7. if(empty($ACCESS_TOKEN)==true)

  8. {

  9.         $APPID="wx2d928b678f508170";

  10.         $APPSECRET="2f99076fde3386b88968489cfebccef0";

  11.         $ACC_TOKEN_URL="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$APPID."&secret=".$APPSECRET;

  12.         $json_data=file_get_contents($ACC_TOKEN_URL);

  13.         $result=json_decode($json_data);

  14.         $ACC_TOKEN=$result->access_token;

  15.     echo $ACC_TOKEN;

  16.           memcache_set($mc, "token", $ACC_TOKEN, 0, 7200);//参数:memcache句柄、键值、数据、标记(默认0)、有效期(过期会被服务器清除)

  17. }
复制代码
这样我们以后就可以在调用接口时直接使用ACCESS_TOKEN作为参数access_token的值就可以了,很简单吧:)
回复

使用道具 举报


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版| 赣南网

© 2013-2016 Comsenz Inc. Powered by Discuz! X3.4

用微信扫一扫

赣南网