微信公众号获取用户头像

一、首先来认识一下所有ID

  1. appid 微信公众号唯一ID
  2. appsecret 公众号分配唯一表示
  3. access_token 公众号的全局唯一接口调用凭据 使用grant_type(client_credential),appid和secret获取,有效期两小时,但是老的失效5分钟以内可以用,中控服务器(redis)储存这个,每天限制2000次。
  4. openid 同一公众号下来标识用户的唯一性。
  5. UnionID 同一用户,对同一个微信开放平台下的不同应用(移动应用、网站应用和公众帐号),unionid是相同的。

二、获取用户头像

一般情况

1、引导用户进入授权页面同意授权,获取code
配置一个地址
https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
例如:
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx520c15f417810387&redirect_uri=https%3A%2F%2Fchong.qq.com%2Fphp%2Findex.php%3Fd%3D%26c%3DwxAdapter%26m%3DmobileDeal%26showwxpaytitle%3D1%26vb2ctag%3D4_2030_5_1194_60&response_type=code&scope=snsapi_base&state=123#wechat_redirect
其中:
appid 公众号的唯一标识
redirect_uri 授权后重定向的回调链接地址, 请使用 urlEncode 对链接进行处理
response_type 返回类型,请填写code
scope 应用授权作用域,snsapi_base (不弹出授权页面,直接跳转,只能获取用户openid),snsapi_userinfo (弹出授权页面,可通过openid拿到昵称、性别、所在地。并且, 即使在未关注的情况下,只要用户授权,也能获取其信息 )
state 重定向后会带上state参数,开发者可以填写a-zA-Z0-9的参数值,最多128字节
#wechat_redirect 无论直接打开还是做页面302重定向时候,必须带此参数,这个为后端的302接口或者前端页面

后边三个都是后端做
2、通过code换取网页授权access_token(与基础支持中的access_token不同)

3、如果需要,开发者可以刷新网页授权access_token,避免过期

4、通过网页授权access_token和openid获取用户基本信息(支持UnionID机制)

参考https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842
特殊情况
1.用户关注过公众号,如果用户从公众号的会话或者自定义菜单进入本公众号的网页授权页,即使是scope为snsapi_userinfo,也是静默授权,用户无感知。
2.UnionID获取(开发者一个账号绑定了多个公众号) https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140839

你可能感兴趣的:(微信公众号)