Discuz QQ互联失败的终极解决办法

关于DZ论坛QQ互联失败的根本原因是远程服务器上PHP版本的问题,折腾一番终于通过QQ登录DZ论坛成功!

此前发布过一篇“Discuz绑定QQ失败的解决办法”,后来发现用QQ快捷登录偶尔还会接口报错。

最终在Discuz官方论坛板块【Discuz!-安装使用】中寻得解决办法(PS:类似的问题还是找官方给出的解决办法比较靠谱)。

升级QQ互联到OAuth2.0版本

由于QQ互联官方接口的升级,原有 OAuth1.0 版本将接口无法正常使用,凡是出现错误或 QQ 互联官方提示的Discuz! 论坛必须开启并升级 QQ 互联到 OAuth2.0 版本

要支持 OAuth2.0,请按照以下步骤执行升级工作:

OAuth2.0升级步骤

  1. 要服务器的 PHP 能正常访问 HTTPS 远程页面,这需要确保服务器的 PHP 拥有扩展 php_curl、php_openssl 并开启 HTTPS 的访问功能,并且无防火墙等系统级拦截情况!
  2. 确保 Discuz! 的版本是否是 Discuz! 3.1 及以上版本,低于此版本的请升级!
  3. 下载本文末尾的OAuth2.0升级脚本,更新到 QQ互联插件目录(source/plugin/qqconnect),然后访问URL 升级到 OAuth2.0 版本:http://yourwebsite/plugin.php?id=qqconnect:oauth_switch(http://yourwebsite 请自行替换为您的论坛地址)
  4. 测试 QQ 互联是否正常(最好先关闭QQ互联再开启),正常后删除 oauth_switch.inc.php 文件

重要说明:

如果通过以上步骤解决了通过QQ登录(即QQ互联)的问题,恭喜,以下经验分享可以忽略不看哦。

以上4个步骤的第一个步骤其实不要担心虚拟服务器不支持。

本站经验网使用的是阿里云服务器,通过阿里云工单咨询了技术工程师,得知虚拟主机不支持开启HTTPS访问功能?(也许步骤一官方给出的解释太过专业,不过没关系,本经验网通过切换PHP版本解决)

当然,PHP的扩展 php_curlphp_openssl 其实都是开启的,通过FTP上传一个PHP脚本文件到根目录测试一下便知(假设取名:phpinfo.php):

  1. <?php 
  2. echo phpinfo();//获得PHP环境信息 
  3. ?> 
 确保服务器的 PHP 拥有扩展 php_curl、php_openssl 并开启 HTTPS 的访问功能

切换PHP版本到最新版本

进入阿里云主机管理控制面板(万网),点击左侧的“高级环境设置”中的“PHP版本设置”,将PHP版本由PHP5.2(默认)切换到PHP5.5,如图:
万网主机管理控制台切换PHP版本
万网主机管理控制台切换PHP版本

重要说明:

以阿里云为例,PHP版本切换到 PHP5.5 后,须按阿里云控制面板给出的提示将数据库加密模式设置为41位加密!(如上图)

完成设置后,请开启QQ互联功能,在Discuz论坛登录区域点击 “用QQ帐号登录” 按钮测试一下吧。

如果使用QQ登录后回调页面没有报错,恭喜!恭喜!什么,报错了?请继续。。

Discuz数据库报错

切换数据库版本后QQ互联登录 PHP Debug报错信息
切换数据库版本后QQ互联登录 PHP Debug报错信息

上图中的 PHP Debug 错误信息是由于升级了QQ互联脚本,导致数据表中缺少了列 conuintoken!请继续。

 

相关经验

导读书签
书签初始化中…