微信的全局接口使用凭证access_token和网页授权临时access_token

一、微信的全局接口使用凭证access_token和网页授权临时access_token

原:http://blog.csdn.net/u010882234/article/details/66972327

微信公众号开发,需要调用微信的各个接口,获取用户信息和用户授权等。其余的业务逻辑功能,和普通web工程大同小异。今天总结一下微信的access_token, 本文简单讲一下微信的全局接口使用凭证access_token和网页授权临时access_token的获取,以及区别。

         先讲全局接口使用凭证access_token。

         要使用微信接口,就要先获取access_token,可以通过appid和appsecret,调用微信获取access_token的接口获取。appid是公众号的唯一标识,是申请微信号后分配到的。appsecret算是服务号的使用密码,可以登录微信公众平台生成或重置。获取access_token,使用这2个参数就行了。接口:https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET。这个access_token,是微信公众号的全局唯一票据,各个微信接口调用都需要用到它。这个接口每天使用限制是2000次,所以自动获取这个access_token是有限制,不能所以接口调用都去重新获取。它的有效期是2个小时,已经自动实现了平滑过渡,可以放心的每隔2小时调用一次。

        下面讲网页授权,code换取access_token。

        首先,用户网页授权,获取code,接口:https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect。APPID,是自己服务号的APPID;REDIRECT_URI,是自己想要跳转的目标地址;response_type=code,表示想要获取code,不能改变这个参数;scope,一般使用参数“snsapi_base”(用户必须已关注公众号),可以取得openid,不需要用户手动同意,自动授权跳转;scope,如果用户没有关注,又想获取用户基本信息(头像、昵称等),可以使用参数“snsapi_userinfo”,不过会弹出微信授权页面,需要用户点击授权;state,微信留给开发者自由使用的字段,我们可以把自己需要的参数,或重定向的地址放在里面。#wechat_redirect加上就行。

        然后,用得到的code,换取网页授权的access_token,https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code。这个接口获取的是临时的网页授权的access_token,与之前说的公众号全局唯一票据access_token是两个东西,不能混为一谈。而且,通过code获取access_token接口,没有使用次数限制。调用这个接口,可以获取到access_token和openid。

       以上讲了公众号全局唯一票据access_token和临时的网页授权的access_token的获取,之后,调用微信接口即可。


二、微信开发中网页授权access_token与基础支持的access_token异同

 转:http://www.cnblogs.com/wellsoho/p/5089409.html

问题1:网页授权access_token与分享的jssdk中的access_token一样吗?

答:不一样。网页授权access_token 是一次性的,而基础支持的access_token的是有时间限制的:7200s。

 

问题2:网页授权access_token与基础支持的access_token不同,那微信分享中的access_token,是不是基础支持的access_token 
答:是
网页授权access_token 只能获取到一个微信用户信息,是与微信用户一对一的关系,
而基础支持的access_token,在有效期内就可以使用access_token和openId 获取微信用户信息


问题3:网页授权access_token有次数限制吗?
答:没有限制


问题4:通过网页授权获取用户基本信息,使用jssdk中的access_token竟然也能获取到用户数据,这是什么情况
答:查资料网页授权access_token与分享的jssdk中的access_token不是不一样吗。这个需要再验证核实。


问题5:关于access_token 获取的次数限制?

答:
接口          每日限额
获取access_token    2000
自定义菜单创建    1000
自定义菜单查询    10000
获取用户基本信息    5000000
获取网页授权access_token   无
刷新网页授权access_token   无
网页授权获取用户信息   无

请参考 接口频率限制说明

问题6:微信开发用户的openid获取有几种方式?

答:有两种方式,都是被动式。

1,通过url 跳转,腾讯的sns社会化登陆,获取openid 。

比如://取得openid

    $oauth2Url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=$appid&secret=$secret&code=$code&grant_type=authorization_code";
    $oauth2 = getJson($oauth2Url);$openid = $oauth2['openid'];

2,通过用户发送消息,通过fromuser 获取openid

 

参考官方回答:

网页授权接口调用凭证,注意:此access_token与基础支持的access_token不同
关于网页授权access_token和普通access_token的区别
1、微信网页授权是通过OAuth2.0机制实现的,在用户授权给公众号后,公众号可以获取到一个网页授权特有的接口调用凭证(网页授权access_token),通过网页授权access_token可以进行授权后接口调用,如获取用户基本信息;
2、其他微信接口,需要通过基础支持中的“获取access_token”接口来获取到的普通access_token调用。

附:网页授权获取用户基本信息基本流程

三、微信获取用户信息的两个接口和两个ACCESS_TOKEN

原:http://www.cnblogs.com/jianmingyuan/p/6080452.html

有一段时间没有搞微信开发了 ,今天突然要改一下程序! 回头一看 微信的帮助文档太tm的稀烂的,太难懂了,这做个笔记以后看着方便

  微信有2个ACCESS_TOKEN,

  1,基础接口的token 获取接口是  

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

  2,用户网页授权access_token 获取接口地址是

  https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

  网页授权access_token 需要通过code去获取

   code是怎么来的,是通过调用下面接口来获取的

   https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

  注意这个接口中有个参数scope 默认有2个值snsapi_base和snsapi_userinfo,这个接口会根据scope 来生成不同的code并且获取不同作用的access_token ,不管scope传什么值都能在得到对应access_token的同时得到open_id, 如果你只需要得到opend_id 那使用snsapi_base参数到此结束了,如果需要获取用户的其他信息比如 昵称 地址 就要snsapi_userinfo 会弹出授权

 

 3 怎么获取用户信息那就调用下面接口

  https://api.weixin.qq.com/sns/userinfo?access_token={0}&openid={1}&lang=zh_CN

 很明显这个接口中的access_token是第二步获取code的时候scope 参数传snsapi_userinfo来换取的access_token

 

 4 微信还有一个获取用户基本信息的接口 但是 这个接口需要你关注了公众号

https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN  (此接口的access_token 是接口基础调用access_token 不是网页授权access_token)

微信的解释:是在用户和公众号产生消息交互或关注后事件推送后,才能根据用户OpenID来获取用户基本信息。这个接口,包括其他微信接口,都是需要该用户(即openid)关注了公众号后,才能调用成功的。


 



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值