CodeAE 发表于 2023-3-29 09:50:12

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

QQ互联目前获取到的都是qquser,无法获取到正常的QQ昵称
解决方法:
1.打开source/plugin/qqconnect/lib/ConnectOAuth.php
2.搜索代码,大约在409行
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']);
                }
      }修改为:
public function connectGetUserInfo_V2($openId, $accessToken) {
                $params = array(
                        'access_token' => $accessToken,
                        'oauth_consumer_key' => $this->_appKey,
                        'openid' => $openId,
                );
                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 = json_decode($response,true);
      $response = $this->_iconv($response, 'UTF-8', CHARSET);
                if(isset($data['ret']) && $data['ret'] == 0) {
                        return $data;
                } else {
                        throw new Exception($data['msg'], $data['ret']);
                }
      }https://www.dismall.com/thread-14612-1-1.html
页: [1]
查看完整版本: QQ互联无法获取昵称的解决办法