基于微信api网页开发整理
2017-12-08 13:58
417 查看
重点整理(实际开发容易迷惑的地方)
一.基本调用凭证和网页授权调用凭证的区别
微信网页开发有2个access_token,一个是基本调用凭证,与微信公众号对应;一个是网页授权调用凭证,与用户对应。
1.获取方式的区别
基本调用凭证仅需要appid和secret两个参数,只与公众号对应,有效期为7200s(2小时),每天只能获取2000次,获取链接为:https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=SECRET
网页授权调用凭证不但需要appid和secret两个参数还需要code,code是在引导用户点击授权链接后并成功授权后,微信跳转回调地址时带的一个参数,所以code的产生是与用户相关,也可以间接理解为网页授权调用凭证是与用户对应,有效期为7200s(2小时),无调用次数限制,在获取到access_token的同时也可以获取到微信用户对应此公众号的openid,获取链接为:
https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
2.两种方式获取到的用户信息区别
开发者无论拿到哪种凭证,在获取用户信息时,都是需要根据用户的openid来获取。基本调用凭证在获取用户信息时只要在微信浏览器即可,但是获取到的用户信息相比于基本调用凭证获取的用户信息多一个参数subscribe,该参数的含义是该用户是否关注该公众号,值为0时,代表此用户没有关注该公众号,拉取不到其余信息。获取用户的信息的链接:
https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN
网页授权调用凭证获取用户的信息分为两种环境,分别为公众号环境内,微信浏览器内公众号外,在公众号环境内,由于用户已经关注了该公众号,所以调用此链接可以直接拿到用户的基本信息,而不需要给用户弹出授权页面。在微信浏览器内公众号外而且没有关注该公众号,是需要给用户弹出授权页面,经过用户授权才可以拿到用户信息。获取用户的信息的链接为:
https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN
注意:两种方式各有各的优缺点,基本调用凭证在无法获取未关注该公众号的用户信息,网页授权调用凭证在公众号环境外获取用户信息时可以弹出授权对话框,提示用户授权,手动同意既可以拿到用户信息,由于用户同意过,所以无论是否关注公众号,都可以拿到用户信息。
二.网页授权调用凭证获取code时scope的区别
在网页授权调用凭证在获取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,scope=snsapi_base是用来获取进入页面的用户的openid,自动跳转到回调页面,并没弹出让用户授权的页面。scope=snsapi_userinfo是用来获取用户的基本信息的,但这种授权需要弹出用户授权页面,需要用户手动同意,就可在授权后获取该用户的基本信息。
相关文章推荐
- 基于Tesseract OCR的文字识别Android应用开发资料整理
- iphone/ipad网站开发技巧整理, ipad 屏幕翻转 网页宽度自适应
- 基于微软ASP.NET AJAX框架开发幻灯片播放网页
- 新手上路(一):基于android平台的投票应用的开发(三)之问题整理
- 基于ARM的网络视频监控开发+网页按钮控制摄像头方位
- [共通]手机端网页开发问题及解决方法整理
- 微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包。
- 基于QML和WebGL开发网页端
- 基于bootstrap的网页开发(导航条和下拉菜单)
- erdaicms首款基于weui(微信网页开发样式库)的前端模版上线
- 基于微软ASP.NET AJAX框架开发幻灯片播放网页
- 开发基于网页的ActiveX控制(二)
- 刷一个基于html5开发的网页圣诞游戏
- 基于JavaEE——微信网页(二)微信开发
- 基于bootstrap的网页开发
- erdaicms首款基于weui(微信网页开发样式库)的前端模版上线
- 安卓项目开发之网页电话---基于webrtc的网络电话
- 70-316 使用Microsoft Visual C# .NET and Microsoft Visual Studio .NET 开发及实现基于Windows的应用程序 考点整理
- 新手上路(一):基于android平台的投票应用的开发(三)之问题整理
- [CSS]手机端网页开发问题及解决方法整理