云平臺 X2.5/X3版本 QQ互聯出現20003錯誤的解決方案

  [復制鏈接]
100137353
ad廣告
ad廣告

馬上注冊,一起探討正確快速的建站方法

您需要 登錄 才可以下載或查看,沒有帳號?快速注冊

x
最近QQ互聯問題無外乎出現20003錯誤、21006錯誤,100010錯誤,connect_error_code_0錯誤等,出現該問題的主要原因是QQ登錄OAuth1.0的服務變得極不穩定了。OAuth2.0的服務,安全性,便捷性都要比1.0強。這個也是早晚的事情。但是由于discuz官方提供的方案不是對所有的網站都有效,很多站長就碰到了各種問題。

Discuz x3.1/x3.2QQ互聯問題 的整體解決思路和具體方案查看:http://bbs.zb7.com/thread-529717-1-1.html

由于Discuz X2.5/X3版本本身插件不支持OAuth2.0,所以處理方法會有不同,如果你是Discuz X2.5/X3版本論壇可參考以下方法處理x2.5和X3都親測解決,修改前做好數據和文件備份

1、下載最新X3.2版本,解壓后打開source\plugin\qqconnect,覆蓋你站點對應source\plugin\qqconnect目錄,然后臺--應用--系統插件--QQ互聯--更新1.18.2版本,升級后會出現Unknown column 'conuintoken' in 'field list'錯誤,參考Unknown column 'conuintoken' in 'field list' 解決辦法

提供以下2個常用版本下載,其他版本可去官方下載
簡體中文GBKhttp://download.comsenz.com/DiscuzX/3.2/Discuz_X3.2_SC_GBK.zip

簡體 UTF8http://download.comsenz.com/DiscuzX/3.2/Discuz_X3.2_SC_UTF8.zip

2、QQ互聯官方接口升級導致,需要服務器能正常訪問 https 的外部文件,在確保服務器 SSL 功能正常的情況下(具體需要開啟擴展 php_openssl),QQ 互聯 從oAuth1 接口 oAuth2 模式下,具體參考http://bbs.zb7.com/thread-525951-1-1.html處理

3、把X3.2的源碼里的plugin/manyou這個插件放到你的網站的對應plugin里的位置。
這個manyou是云服務的一些方法在里面。X3是在api/manyou里,所以我估計替換manyou/Server這個文件夾也是可行的。

4、Discuz X2.5/X3版本conuintoken 的部分字段缺失,補充上conuintoken這個字段做兼容即可。
member_connect_logging.php
25行:
$conuintoken = $this->connect_guest['conuintoken'];

33行:
//if ($conuin && $conopenid) {
if ($conopenid) {

member_connect_register.php

63行,增加
$conuintoken = $this->connect_guest['conuintoken'];

69左右
        //if (!$conuin || !$conuinsecret || !$conopenid) {
        //        showmessage('qqconnect:connect_get_request_token_failed');
//        }

改為

        if(!$_G['setting']['connect']['oauth2']) {
                if (!$conuin || !$conuinsecret || !$conopenid) {
                        showmessage('qqconnect:connect_get_request_token_failed');
                }
        } else {
                if (!$conuintoken || !$conopenid) {
                        showmessage('qqconnect:connect_get_request_token_failed');
                }
        }

102增加
'conuintoken' => $conuintoken,

class_cloud.php
43行
$file = DISCUZ_ROOT . ‘/api/manyou/' . implode('/', $items) . '.php';

改為
$file = DISCUZ_ROOT . '/source/plugin/manyou/' . implode('/', $items) . '.php';

關鍵一步
DX3.2中的function_filesock 替換 source/function中的 function_filesock.php

Discuz x3補丁包
游客,如果您要查看本帖隱藏內容請回復
,下載后直接覆蓋source目錄即可

最后,對小白用戶,網友bugx提供一個檢測腳本 qqtest.php.zip (9.45 KB, 下載次數: 162) ,解壓縮后把里面的qqtest.php 放到論壇根目錄,然后url中打開就可以。如果沒有出現 YOU should install and open Curl_PHP 的提示,那么你的環境是正確的。CURL和ssl都是可以用的。【注】查看完請立即刪除,也可以通過探測查看CURL和ssl。

Discuz x2.5論壇處理后依然會存在一些問題需要處理,建議大家盡量升級X3.2論壇,目前X2.5升級后出現的問題如下:
1、部分語言包無法顯示,可通過修改插件模板進行完善


2、云平臺 系統插件初始化提示,無法進行修復,不影響使用


3、發帖需要綁定QQ,升級下防水墻插件security,然后在里面進行設置


附:判斷OAuth2.0是否啟用的方法。點擊qq登錄后跳到的地址是下面這個,就是1.0的
  1. http://openapi.qzone.qq.com/oauth/qzoneoauth_authorize?oauth_consumer_key=xxxxxx&oauth_token=xxxxxx
復制代碼

跳到下面這個地址,就是2.0的
  1. http://openapi.qzone.qq.com/oauth/show?which=Login&display=pc&response_type=code&client_id=xxxx&redirect_uri=http%3A%2F%2Fwww.discuz.net%2Fconnect.php%3Fmod%3Dlogin%26op%3Dcallback%26referer%3Dforum.php%253Fmod%253Dviewthread%2526tid%253D3195653%2526extra%253Dpage%25253D1%2526page%253D1&state=xxxxx&scope=get_user_info%2Cadd_share%2Cadd_t%2Cadd_pic_t%2Cget_repost_list
復制代碼




上一篇:Discuz x3.2/3.1 QQ互聯問題 的整體解決思路和具體方案
下一篇:BAE3.0入門:移植Discuz X3.1論壇系統
分享到:  QQ好友和群QQ好友和群
收藏收藏4

大神點評100

跳轉到指定樓層
4
ins 發表于 2015-9-8 21:22:15 [云平臺] 只看該作者
學習了 感謝 A先生分享啊
5
小江南 發表于 2015-9-8 21:27:27 [云平臺] 只看該作者
強烈支持,站幫網有你更精彩
6
DELL 發表于 2015-9-9 10:14:24 [云平臺] 只看該作者
這幾天會員反應這個問題呢
8
fcalex 發表于 2015-9-9 16:52:00 [云平臺] 只看該作者
感謝分享 你最棒
9
a764075 發表于 2015-9-9 20:50:37 [云平臺] 只看該作者
很給力,希望分享更多給力的帖子啊。
10
a764075 發表于 2015-9-9 20:52:42 [云平臺] 只看該作者
回復有元寶拿吧
11
baiditan 發表于 2015-9-10 04:49:07 [云平臺] 只看該作者
11111111111111111
12
zhang6423987 發表于 2015-9-10 08:53:15 [云平臺] 只看該作者
{:3_46:}
13
auoaus 發表于 2015-9-10 19:43:12 [云平臺] 只看該作者
咳咳咳咳咳
15
huakhl 發表于 2015-9-10 20:08:06 [云平臺] 只看該作者
樓主,2.5的后臺上傳新的文件后,沒有qq升級的地方,貌似qq互聯是集成在了云平臺
您需要登錄后才可以回帖 登錄 | 快速注冊

本版積分規則

快速回復 返回頂部 返回列表
爱彩网首页