评论

收藏

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

建站程序 建站程序 发布于:2023-03-29 09:50 | 阅读数:244 | 评论:0

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']);
        }
    }

关注下面的标签,发现更多相似文章