·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

QQ互联无法获取昵称的解决办法

374 2
发表于 2022-12-15 17:58:02 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
QQ互联目前获取到的都是qquser,无法获取到正常的QQ昵称
解决方法:
1.打开source/plugin/qqconnect/lib/ConnectOAuth.php
2.搜索代码,大约在409行
  1. public function connectGetUserInfo_V2($openId, $accessToken) {                 $params = array(                         'access_token' => $accessToken,                         'oauth_consumer_key' => $this->_appKey,                         'openid' => $openId,                         'format' => 'xml'                 );                 require_once DISCUZ_ROOT.'/source/plugin/qqconnect/lib/Util.php';                 $utilService = new Cloud_Service_Util();                 $response = $this->dfsockopen($this->_getUserInfoURL_V2.'?'.$utilService->httpBuildQuery($params, '', '&'));                 $data = $this->_xmlParse($response);                 if(isset($data['ret']) && $data['ret'] == 0) {                         return $data;                 } else {                         throw new Exception($data['msg'], $data['ret']);                 }         }
复制代码
修改为:
也可以看
我要说一句 收起回复
一花一世界,一叶一追寻。一曲一场叹,一生为一人。

评论2

yusr 发表于 2022-12-18 23:09:27 来自手机 | 查看全部 | Google Chrome | RedMi
看什么?:lol
我要说一句 收起回复
回复

使用道具 举报

Discuz智能体Lv.8 发表于 2025-3-19 00:59:59 | 查看全部
你提到的QQ互联无法获取昵称的问题,通常是由于QQ互联接口的返回数据格式或接口调用方式发生了变化。根据你提供的代码片段,我们可以通过以下步骤来解决这个问题。

### 解决方法:

1. **打开文件**:找到 `source/plugin/qqconnect/lib/ConnectOAuth.php` 文件。

2. **搜索代码**:找到 `connectGetUserInfo_V2` 方法,大约在409行。

3. **修改代码**:将原有的代码修改为以下内容:

  1. public function connectGetUserInfo_V2($openId, $accessToken) {
  2.     $params = array(
  3.         'access_token' => $accessToken,
  4.         'oauth_consumer_key' => $this->_appKey,
  5.         'openid' => $openId,
  6.         'format' => 'json'  // 将格式改为json
  7.     );

  8.     require_once DISCUZ_ROOT.'/source/plugin/qqconnect/lib/Util.php';
  9.     $utilService = new Cloud_Service_Util();
  10.     $response = $this->dfsockopen($this->_getUserInfoURL_V2.'?'.$utilService->httpBuildQuery($params, '', '&'));

  11.     // 解析json格式的响应
  12.     $data = json_decode($response, true);

  13.     if(isset($data['ret']) && $data['ret'] == 0) {
  14.         return $data;
  15.     } else {
  16.         throw new Exception($data['msg'], $data['ret']);
  17.     }
  18. }
复制代码


### 修改说明:

1. **格式改为JSON**:将 `format` 参数从 `xml` 改为 `json`,因为QQ互联的接口可能已经不再支持XML格式的返回数据。

2. **解析JSON数据**:使用 `json_decode` 函数来解析返回的JSON数据。

3. **错误处理**:根据返回的 `ret` 字段判断是否成功获取用户信息,如果失败则抛出异常。

### 其他注意事项:

- **接口URL**:确保 `$this->_getUserInfoURL_V2` 是正确的接口URL,通常为 `https://graph.qq.com/user/get_user_info`。

- **权限问题**:确保你的QQ互联应用已经申请了获取用户信息的权限。

- **缓存问题**:如果修改后仍然无法获取昵称,可以尝试清除Discuz的缓存,或者重新登录QQ互联。

### 总结:

通过以上修改,QQ互联应该能够正常获取到用户的昵称信息。如果问题仍然存在,建议检查QQ互联的接口文档,确认是否有其他参数或调用方式的变化。

如果你有其他问题或需要进一步的帮助,欢迎随时提问!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

图文热点
关闭

站长推荐上一条 /1 下一条

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:3.144.46.162,GMT+8, 2025-4-4 00:28 , Processed in 0.257036 second(s), 86 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表