微信公众号获取用户头像

一、首先来认识一下所有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

### 使用微信公众号 API 获取用户信息 为了通过微信公众号获取用户信息,开发者可以利用 `oauth2` 授权机制来实现这一功能。当用户同意授权后,可以通过接口拉取用户信息[^1]。 具体来说,在用户关注并点击链接进入授权页面之后,如果用户同意授权,则系统会重定向到开发者填写的回调地址,并附带上 code 参数以及 state 参数(如果有设置)。此时可使用此 code 请求换取 access_token 和 openid。其中,openid 是用于标识用户的唯一 ID;而 access_token 则是用来调用微信其他接口所需的凭证。 一旦获得了 access_token 和 openid 后,就可以请求如下 URL 来获取用户基本信息: ``` https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN ``` 该接口返回的数据是一个 JSON 对象,包含了用户的昵称、头像等多个字段[^2]。 ```json { "subscribe": 1, "openid": "o6_bmjrPTlm6_2sgVt7hMZOPfL2M", "nickname": "Band", "sex": 1, "language": "zh_CN", "city": "广州", "province": "广东", "country": "中国", "headimgurl": "http://thirdwx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6dxQ8SiaKqCvm05jNlAwrFFGSibmTH7CgF9cjlw5WicnVTBicvJXfMDuZrbibu45GpaT9EM6e1SKonA/0", "subscribe_time": 1382694957, ... } ``` 上述过程中的每一个环节都至关重要,任何一步出现问题都会影响最终能否成功取得用户资料。因此建议仔细阅读官方文档并按照指引操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值