Home >Backend Development >PHP Tutorial >公众号网页授权后获取用户基本信息出现access_token非法提示

公众号网页授权后获取用户基本信息出现access_token非法提示

WBOY
WBOYOriginal
2016-06-06 20:27:112489browse

首先我确定我的公众号是认证的服务号,而且已经设置了与当前访问的域名一样的公众号授权域名,而且授权的方式是出现提示框的那种(即可获取用户信息的)而非静默授权。
我的开发流程:
1、调用接口http://open.weixin.qq.com/connect/oauth2/authorize?appid=公众号APPID&redirect_uri=我的地址&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect ,并成功获取code。
2、利用code获取access_token,调用https://api.weixin.qq.com/sns/oauth2/access_token?appid=公众号APPID&secret=公众号APPSECRET&code=CODE&grant_type=authorization_code,并成功获取access_token,refresh_token,openid等数据
3、利用上面获得的access_token获取用户https://api.weixin.qq.com/cgi-bin/user/info?access_token=上面获取的access_token&openid=上面获取的openid&lang=zh_CN,但这里获取到的信息是错误的信息,errcode是40001,errmsg:invalid credential,access_token is invalid or not latest hint:[25XmA020.....]。

步骤看上去像是正确的,为什么通过授权的access_token都不能获取到用户信息?我可是一获取到access_token马上用来获取用户信息的,应该不会是access_token超时的原因啊。哪位大神知道是什么问题?

回复内容:

首先我确定我的公众号是认证的服务号,而且已经设置了与当前访问的域名一样的公众号授权域名,而且授权的方式是出现提示框的那种(即可获取用户信息的)而非静默授权。
我的开发流程:
1、调用接口http://open.weixin.qq.com/connect/oauth2/authorize?appid=公众号APPID&redirect_uri=我的地址&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect ,并成功获取code。
2、利用code获取access_token,调用https://api.weixin.qq.com/sns/oauth2/access_token?appid=公众号APPID&secret=公众号APPSECRET&code=CODE&grant_type=authorization_code,并成功获取access_token,refresh_token,openid等数据
3、利用上面获得的access_token获取用户https://api.weixin.qq.com/cgi-bin/user/info?access_token=上面获取的access_token&openid=上面获取的openid&lang=zh_CN,但这里获取到的信息是错误的信息,errcode是40001,errmsg:invalid credential,access_token is invalid or not latest hint:[25XmA020.....]。

步骤看上去像是正确的,为什么通过授权的access_token都不能获取到用户信息?我可是一获取到access_token马上用来获取用户信息的,应该不会是access_token超时的原因啊。哪位大神知道是什么问题?

获取用户信息的接口需要进行微信认证
公众号网页授权后获取用户基本信息出现access_token非法提示

你报的这个错误应该是access_token失效导致的,是不是用什么缓存来保存access_token了,那样的话,建议先清空下缓存再试试。http://www.weixin.com

我再强调一遍,网页授权获取用户信息的接口是

http://mp.weixin.qq.com/wiki/17/c0f37d5704f0b64713d5d2c37b468d75.html

而不是

http://mp.weixin.qq.com/wiki/14/bb5031008f1494a59c6f71fa0f319c66.html

网页授权的 AccessToken 和获取用户信息的 AccessToken 不是一个东西。

也就是你上面的第 3 步的接口地址应是

https://api.weixin.qq.com/sns/userinfo

而不是

https://api.weixin.qq.com/cgi-bin/user/info

参考:https://github.com/thenbsp/wechat

10/6 更新

真不知道踩的人是什么心理,也不知道踩的人有没有仔细查看管方文档,如果觉得我的回答不对,请站指出错误,谢谢!

access_token自己缓存下,你用了一个过时的

明明expiredate是7200秒,但是没到2小时accesstoken就过期了,有什么办法去判断accesstoken过期呢

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn