云平台 X2.5/X3版本 QQ互联出现20003错误的解决方案

  [复制链接]
ARCHY明星会员实名认证 2015-9-8 [云平台] 显示全部楼层 |阅读模式 上一主题 下一主题
discuz使用视频教程
31idc

马上注册,一起探讨正确快速的建站方法

您需要 登录 才可以下载或查看,没有帐号?快速注册

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)



上一篇:Discuz x3.2/3.1 QQ互联问题 的整体解决思路和具体方案
下一篇:BAE3.0入门:移植Discuz X3.1论坛系统

大神点评97

ins 2015-9-8 [云平台] 显示全部楼层
学习了 感谢 A先生分享啊
小江南 2015-9-8 [云平台] 显示全部楼层
强烈支持,站帮网有你更精彩
DELL 2015-9-8 [云平台] 显示全部楼层
这几天会员反应这个问题呢
fcalex 2015-9-8 [云平台] 显示全部楼层
感谢分享 你最棒
a764075 2015-9-8 [云平台] 显示全部楼层
很给力,希望分享更多给力的帖子啊。
a764075 2015-9-8 [云平台] 显示全部楼层
回复有元宝拿吧
baiditan 2015-9-8 [云平台] 显示全部楼层
11111111111111111
zhang6423987 2015-9-8 [云平台] 显示全部楼层
{:3_46:}
auoaus 2015-9-8 [云平台] 显示全部楼层
咳咳咳咳咳
huakhl 2015-9-8 [云平台] 显示全部楼层
楼主,2.5的后台上传新的文件后,没有qq升级的地方,貌似qq互联是集成在了云平台
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

快速回复 返回顶部 返回列表