关于微信网页授权获取用户基本信息480001:api功能未授权问题,我的公众账号已经认证过了。

发布于 2022-09-01 15:21:03 字数 2134 浏览 31 评论 0

遇到问题描述:
同样的网页授权获取用户基本信息代码,有些手机获取得了用户信息,有些手机获取不到,显示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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(12

面犯桃花 2022-09-08 15:21:03

请注意读文档,scope=snsapi_base时是静默的,不弹出授权界面,只能获取用户openid,此时api未获得用户授权,所以你要拉取用户信息,就会弹出480001.如果要拉取用户信息请用snsapi_userinfo,当用户进入页面会弹出授权确认界面。

牵你的手,一向走下去 2022-09-08 15:21:03

我把获取code那一步的snsapi_base换成snsapi_userinfo,问题就解决了,随后也是按原来的步骤获取openid和accesstoken,再拿获取的这两个值获取用户信息,之前出现的有些微信能获取有些却获取不了的问题就解决了。

乜一 2022-09-08 15:21:03

请问你解决了这个问题吗

拥抱没勇气 2022-09-08 15:21:03

这个有问题吧

scope=snsapi_base

你想获取到用户信息 你不用snsapi_userinfo?

┾廆蒐ゝ 2022-09-08 15:21:03

请问你找到答案了吗??
我这儿也是这样 确定认证成功并且在微信公众号后台给账号添加了api权限。
使用手动授权snsapi_userinfo的时候能获取到信息,使用静默授权snsapi_base的时候就会出现48001错误。
如果你已经有答案希望能指导一下,谢谢。

倾城花音 2022-09-08 15:21:03

请问该问题是否已经解决了呢?遇到同样的问题,部分手机微信能够成功拉取用户信息,部分微信不能成功拉取,提示48001.求告知解决方法

残花月 2022-09-08 15:21:03

请问您解决了吗,我也遇到了这样的问题

梦在夏天 2022-09-08 15:21:03

解决了吗?我也遇到这样的问题。确定是已经认证的服务号,并且在开发网页配置项里面填写了回掉域名。

流云如水 2022-09-08 15:21:03

你好 你解决了吗

戏蝶舞 2022-09-08 15:21:03

注意,网页授权获取用户信息有两个前提
1. 你的账号是服务号
2. 你已经在微信公众号后台给账号添加了授权获取用户信息的权限

私以为,你是第二点没做

凉城 2022-09-08 15:21:03

微信这个接口不太严谨,用base静默授权很多用户也能获取到用户信息,但是有时候获取不到返回48001

演出会有结束 2022-09-08 15:21:03

以snsapi_base为scope发起的网页授权,是用来获取进入页面的用户的openid的,并且是静默授权并自动跳转到回调页的。用户感知的就是直接进入了回调页(往往是业务页面)

你只是获取到了用户openId,但是未获取用户授权,而获取用户基本信息需要用户手动授权,所以你直接通过openId获取用户基本信息的时候会报“48001 —— 接口功能未授权,请确认公众号已获得该权限”的错误。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文