微信公众号获取用户信息致跳过的坑

有一段时间没有搞微信开发了 ,今天突然要改一下程序! 回头一看 微信的帮助文档太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)关注了公众号后,才能调用成功的。

此文章转自《bug张》 http://www.cnblogs.com/sxmny/articles/4969119.html  感谢朋友!

时间: 2024-10-14 06:19:39

微信公众号获取用户信息致跳过的坑的相关文章

微信公众号获取用户信息工具类

package com.hfcx.cfms.base.utils; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.InetSocketAddress; import java.net.Proxy; im

微信公众号--获取用户列表

之前其实写过一次微信号的简单开发,包括菜单自动回复拉取用户信息等简单的微信公众号的开发,今天又用到了,然后发现自己还是忘记了,看来记录下来是真的有必要的.我今天主要是写了拉取用户信息,所以我这比写的也就是拉取用户信息. 这里使用的还是TP的框架写的php代码进行开发的. 1.对使用的公众号进行基本配置 代码: //微信验证 public function checkWechat(){ // $weixin=M("maiclub_weixin"); // $res=$weixin->

微信公众号获取用户地理位置

很久没搞微信的js-sdk了, 搞了一下午, 刷新页面老是失败, 没想到结合经验给大家展示下获取用户地理位置 第一步:登录微信公众号https://mp.weixin.qq.com 首先先设置最基本的配置(这一步大家应该都会) 第二步:点击公众平台右上角展开点击功能设置 配置网页授权域名 填写项目所使用的的域名并将文件下载放到项目根目录 然后在配置js安全域名同样将要下载的txt文件放到项目目录也可以是二级目录, 如果放到二级目录域名后面要就目录路径哦 保存之后: 第三步: 公众号左边栏,开发-

asp微信公众号获取用户地址信息源码,可以获取省市县及坐标

============================================= 互相学习电话微信:18611436777(加微信注明事由) <!--#include file="Function.asp" --><% timestamp = Datediff("s","1970-01-01 00:00:00",now) nonceStr = MakeRandStr(32) signature = Get_Sign()

asp源码微信公众号获取用户基本信息(PC端)

blic Function Get_Access_Token() sCode = Request("code") If sCode ="" And Session("access_token")="" Then Response.Redirect(GetAuthorization_Code) Else If DateDiff("s",Now,Session("access_token_expire

微信小程序与微信公众号同一用户登录问题

最近在做微信小程序与微信公众号登录合并的接口.整理相关资料以及个人认识的心得写了这篇文章与大家一起分享. 首先,简单说下我遇到的问题是我们的程序调用微信小程序得到openid,然后通过openID得到用户的唯一标识,用户得以登录,然而,当我们调用微信公众号也同样的到openid,同一以用户两个不同的openid,不能区分是否为同一用户,然后发现无论调用微信小程序还是微信公众号同一个用户的到unionid是相同的,所以我们就用unionid来区分是否为同一用户. UnionID机制说明: 如果开发

微信公众号获取粉丝openid系统

做为一名开发人员,在测试当中也经常需要用到openid,但是微信公众号获取openid的方法也是特别麻烦!网页授权是最常见的方式, 但是网页授权的流程太复杂,不仅要开发,还要在公众号后台设置回调域名(必须备案域名,还要上传txt验证文件),个人认为微信在获取openid方面未免太过繁琐了! 一直在想怎么获取粉丝的openid最方便,傻瓜式操作,避免复杂的流程,于是用下面的方法来获取全部粉丝的openid:同步公众号粉丝列表 操作流程: 1.无需设置任何东西,只需要填写公众号的appid和apps

微信小程序-获取用户信息和openid,session_key,

1:微信小程序获取用户信息:比如常用的 avatarUrl (用户头像),nickName (用户名称) 等等, (1):获取用户信息调用 wx.getUserInfo 代码如下: 直接请求接口就可以了,随后把数据存放到storage中,下次直接取 就不用再请求接口,, 2:获取 openid (1):请求wx.login 接口,代码如下: url:是微信提供的 appid:是小程序的appid secret:是小程序开发设置的 AppSecret 只要获取到这两项,用户信息可以用于页面,ope

微信网页授权-获取用户信息

第一步:修改网页授权安全域名,什么叫安全域名?安全域名就是说只有这个域名的网页才可以安全的进行网页授权以及获取用户信息. 第二步:下载下这个 MP_verify_Sb2ASLINFP09cMn6.txt(点击下载)放到你的服务器根目录下,可以通过你上面配置的域名直接访问的到,即:http://www.zheyue.me/MP_verify_Sb2ASLINFP09cMn6.txt  可以访问的到.点击确认完成. 第三步: 对自己做的网页地址进行包装,引导客户点击新包装的地址即可.例: https