关于微信网页授权获取用户基本信息480001:api功能未授权问题,我的公众账号已经认证过了。
遇到问题描述:
同样的网页授权获取用户基本信息代码,有些手机获取得了用户信息,有些手机获取不到,显示48001错误;
大家遇到过这样的问题吗?怎么解决的?
我活的用户的基本信息的代码如下:
/*
* 获得网页授权oauth2.0 返回当前用户的openid相关信息
*/
public function getOauth_userinfo($redirect_uri)
{
$curl = new \Curl();
$url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" . C('APPID') . "&redirect_uri=" . $redirect_uri . "&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect";
$userinfo = I("get.");
if (!$userinfo['code']) {
Header("Location: $url");
exit;
} else {
//使用CODE进行交换ACCESS_TOKEN
$getAccessTokenUrl = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=" . C('APPID') . "&secret=" . C('APPSECRET') . "&code=" . $userinfo['code'] . "&grant_type=authorization_code";
$myres = $curl->get($getAccessTokenUrl);
$myres = json_decode($myres);
//刷新access_token
$refresh_token_url = "https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=" . C('APPID') . "&grant_type=refresh_token&refresh_token=" . $myres->refresh_token;
$refresh_token_res = $curl->get($refresh_token_url);
$refresh_token_res=json_decode($refresh_token_res);
//请求用户基本信息
$getUserInfoUrl = "https://api.weixin.qq.com/sns/userinfo?access_token=" . $refresh_token_res->access_token . "&openid=" . $refresh_token_res->openid . "&lang=zh_CN";
$userinfores = $curl->get($getUserInfoUrl);
$userinfo = json_decode($userinfores);
return $userinfo;
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(12)
请注意读文档,scope=snsapi_base时是静默的,不弹出授权界面,只能获取用户openid,此时api未获得用户授权,所以你要拉取用户信息,就会弹出480001.如果要拉取用户信息请用snsapi_userinfo,当用户进入页面会弹出授权确认界面。
我把获取code那一步的snsapi_base换成snsapi_userinfo,问题就解决了,随后也是按原来的步骤获取openid和accesstoken,再拿获取的这两个值获取用户信息,之前出现的有些微信能获取有些却获取不了的问题就解决了。
请问你解决了这个问题吗
这个有问题吧
你想获取到用户信息 你不用snsapi_userinfo?
请问你找到答案了吗??
我这儿也是这样 确定认证成功并且在微信公众号后台给账号添加了api权限。
使用手动授权snsapi_userinfo的时候能获取到信息,使用静默授权snsapi_base的时候就会出现48001错误。
如果你已经有答案希望能指导一下,谢谢。
请问该问题是否已经解决了呢?遇到同样的问题,部分手机微信能够成功拉取用户信息,部分微信不能成功拉取,提示48001.求告知解决方法
请问您解决了吗,我也遇到了这样的问题
解决了吗?我也遇到这样的问题。确定是已经认证的服务号,并且在开发网页配置项里面填写了回掉域名。
你好 你解决了吗
注意,网页授权获取用户信息有两个前提
1. 你的账号是服务号
2. 你已经在微信公众号后台给账号添加了授权获取用户信息的权限
私以为,你是第二点没做
微信这个接口不太严谨,用base静默授权很多用户也能获取到用户信息,但是有时候获取不到返回48001
你只是获取到了用户openId,但是未获取用户授权,而获取用户基本信息需要用户手动授权,所以你直接通过openId获取用户基本信息的时候会报“48001 —— 接口功能未授权,请确认公众号已获得该权限”的错误。