找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6204|回复: 4

[插件开发] QQ登陆增强插件

[复制链接]
发表于 2022-3-17 21:53:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区

您需要 登录 才可以下载或查看,没有账号?立即注册

×
插 件 简 介

本插件在新秀网络验证插件框架环境下开发,本插件无缝整合Discuz内置系统,采用独立式插件开发、分离代码、支持二次扩展。本插件所有功能实现及控制均采用api接口操作,数据输出形式为JSON、XML两种常见形式,达到毫秒级数据快速交换功能。客户端支持Python、Java、C++、易语言、PHP、易安卓、火山移动等所有主流开发语言,适用于各种pc、app、web端功能开发。

功能简介:通过绑定QQ互联,实现QQ与用户数据相互绑定,可实现QQ登陆等其他扩展功能。完全兼容官方QQ互联数据同步!

插件授权:点击购买

安装方式:

1、下载 新秀网络验证管理系统新秀网络验证应用中心 插件,并都安装成功;

2、在网站后台插件“新秀网络验证应用中心”中“应用中心”页面点击对应插件安装。

其他相关:开发交流  =  BUG反馈  =   QQ客服:3188639  QQ交流群:281079920

使 用 指 南

1、申请开发者账号:

QQ互联开发中心申请地址:https://connect.qq.com/

点击应用管理->网站应用->创建应用;

a、创建成功后,按要求填写平台信息:

QQ截图20240506012542.png

例如:

网站地址 :http://www.xinxiuvip.com/

网站回调域 :http://www.xinxiuvip.com/connect.php

主办单位名称 : 如实填写

网站备案号 : 如实填写

b、申请unionid应用接口

申请unid.png

2、后台设置:

QQ截图20240506013250.png

3、插入回调代码:

编辑网站根目录connect.php文件代码!

$discuz->init();代码后面插入下面代码:

[PHP] 纯文本查看 复制代码
#↓↓↓↓↓↓↓此处为新秀网络验证QQ登录插件接口,勿删!!!
if (empty($_GET['op']) && empty($_GET['mod'])){
    global $_G;
    $url = $_G['siteurl'].'plugin.php?id=xinxiuvip_network_plugin:qqcallback'.'&code='.$_GET['code'].'&state='.$_GET['state'];
    header("Location:$url");
    exit();
}
#↑↑↑↑↑↑↑此处为新秀网络验证QQ登录插件接口,勿删!!!

懒人操作:discuz3.5版本connect.php全代码直接复制粘贴。

[PHP] 纯文本查看 复制代码
<?php
/*
   [Discuz!] (C)2001-2099 Comsenz Inc.
   This is NOT a freeware, use is subject to license terms

   $Id: connect.php 26424 2011-12-13 03:02:20Z zhouxiaobo $
*/

if(isset($_GET['mod']) && $_GET['mod'] == 'register') {
    $_GET['mod'] = 'connect';
    $_GET['action'] = 'register';
    require_once 'member.php';
    exit;
}

define('APPTYPEID', 126);
define('CURSCRIPT', 'connect');
define('NOT_IN_MOBILE_API', 1);

require_once './source/class/class_core.php';
require_once './source/function/function_home.php';
$discuz = C::app();
$mod = $discuz->var['mod'];
$discuz->init();

#↓↓↓↓↓↓↓此处为新秀网络验证QQ登录插件接口,勿删!!!
if (empty($_GET['op']) && empty($_GET['mod'])){
    global $_G;
    $url = $_G['siteurl'].'plugin.php?id=xinxiuvip_network_plugin:qqcallback'.'&code='.$_GET['code'].'&state='.$_GET['state'];
    header("Location:$url");
    exit();
}
#↑↑↑↑↑↑↑此处为新秀网络验证QQ登录插件接口,勿删!!!


if(!in_array($mod, array('config', 'login', 'feed', 'check', 'user'))) {
        showmessage('undefined_action');
}

if(!$_G['setting']['connect']['allow']) {
        showmessage('qqconnect:qqconnect_closed');
}

define('CURMODULE', $mod);
runhooks();


require_once DISCUZ_ROOT.'/source/plugin/qqconnect/lib/Connect.php';
$connectService = new Cloud_Service_Connect();
require_once libfile('connect/'.$mod, 'plugin/qqconnect');


?>


QQ登录模块

1、QQ登录接口-第一步   

/*此接口是获取QQ登录地址,直接打开即可。如果已绑定帐号,直接返回token,可获取Token令牌,否则返回可绑定openid,进行第二步,*/

2、QQ登录绑定-第二步   /*通过第一步获取的openid值,进行账号绑定。绑定成功后,获取Token令牌*/

3、QQ解除绑定   /*此接口是针对已经绑定QQ的账号,进行解绑操作,解绑后可重新绑定其他QQ。*/

4、QQ登陆跳转接口   /*此接口通过QQ登陆绑定账号成功后,采用免登录状态自动跳转本站内指定网址*/


更 新 日 志

QQ登陆插件ver1.03

增加:QQ解除绑定接口,增加解绑机器码参数code

QQ登陆插件ver1.02

增加:QQ绑定与官方QQ互联插件同步

增加:QQ解绑与官方QQ互联插件同步

增加:回调代码嵌入官方QQ互联调用地址

优化:QQ登录后直接跳转网页代码

优化:回调地址代码

QQ登陆插件ver1.01

优化:QQ绑定接口代码优化

QQ登陆插件ver1.00

增加:QQ登陆接口

增加:QQ绑定接口

增加:QQ解绑接口

增加:QQ登陆跳转接口

增加:后台QQ登陆设置页面

增加:QQ参数采用文本缓存

待续……

 楼主| 发表于 2022-3-17 22:21:27 | 显示全部楼层
第一步:QQ登录地址
接口说明:此接口是获取QQ登录地址,直接打开即可。如果已绑定,则返回登录后token,如果登录QQ未绑定,则返回QQ专属openid参数,再进行第二步用openid接口绑定即可。

接口详情
请求地址:http://demo35.xinxiuvip.com/plugin.php?id=xinxiuvip_network_plugin:qq
请求方式: GET   
返回格式: JSON\XML     /*默认返回JSON格式,如需返回XML格式,请在接口网址后面增加&output=xml参数*/

请求参数(所有参数值均URL加密后传输【注意GBK与UTF8编码区别】
参数类型是否必填说明示例
key[string]传输密钥123456
action[string]接口方法qq_login

请求示例(GET)
[PHP] 纯文本查看 复制代码
http://demo35.xinxiuvip.com/plugin.php?id=xinxiuvip_network_plugin:qq&action=qq_login&key=123456

返回参数所有接口返回数据含中文时“\u672c\u6846”,请用USC2进行解码
参数类型是否必含说明示例
code[number]http状态码200
result[string]错误信息状态码OK
count[number]数组成员数1
data[object]数组
data>>url[string]QQ登录地址,直接打开注意删除返回地址中\反斜杠
sqltime[string]页面执行时间(秒)0.00829s

返回示例(JSON)
[PHP] 纯文本查看 复制代码
{
    "code": 200,
    "result": "OK",
    "count": 1,
    "data": {
        "url": "https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id=101994861&redirect_uri=http://demo.xinxiuvip.com/plugin.php?id=xinxiu_network_plugin:qqcallback&state=3b37faccbc5f9322da41ae780b756559&scope=get_user_info"
    },
    "sqltime": "0.00274s"
}
[PHP] 纯文本查看 复制代码
{
        "code": 200,
        "result": "error00719",
        "count": 1,
        "data": {
                "openid": "31584DB55485A5DA17334471FEBB0040"
        },
        "sqltime": "20413.54679s"
}

额外说明
此接口是获得QQ登录页面,直接打开即可。如果已绑定,则返回登录后token,如果登录QQ未绑定,将返回opendi参数,再进行第二步即可。

错误提示码
错误码查询地址:点击访问
BUG提交:点击提交
QQ交流群:281079920

回复

使用道具 举报

 楼主| 发表于 2022-3-17 22:21:56 | 显示全部楼层
第二步:QQ登录绑定
接口说明: 利用QQ登录第一步获取的openid进行用户名绑定。

接口详情
请求地址:http://demo35.xinxiuvip.com/plugin.php?id=xinxiuvip_network_plugin:qq
请求方式: GET   
返回格式: JSON\XML     /*默认返回JSON格式,如需返回XML格式,请在接口网址后面增加&output=xml参数*/

请求参数(所有参数值均URL加密后传输【注意GBK与UTF8编码区别】
参数类型是否必含说明示例
key[string]传输密钥123456
action[string]接口方法openid_login
openid[string]第一步登录获取的openid46C1A73BC531D7FCD4F6E642D70E715441
username[string]用户名demo
password[string]用户密码demo

请求示例(GET)
[PHP] 纯文本查看 复制代码
http://demo35.xinxiuvip.com/plugin.php?id=xinxiuvip_network_plugin:qq&key=123456&action=openid_login&openid=31584DB55485A5DA17334471FEBB0040&username=demo&password=demo

返回参数所有接口返回数据含中文时“\u672c\u6846”,请用USC2进行解码
参数类型是否必含说明示例
code[number]http状态码200
result[string]错误信息状态码OK
count[number]数组成员数12
data[object]数组
data>>uid[string]用户uid2
data>>username[string]注册用户名demo
data>>groupid[string]用户组id15
data>>groupexpiry[number]用户组到期时间,0为永久
data>>adminid[string]管理组id
data>>token[string]token令牌6316voNaDNxnx5mEK7cEYUmL5rBa4O5ZJAfnkM5ZR
rRuUMt0WdFFSwE6EwtSKuwi4uudiiRelhTv
data>>sgin[string]登陆卡号XXC1AD0852289C30AD04C745AE0FAD6E
data>>dateline[string]卡号到期时间(适用于计时模式)2019-04-0301:34:27
data>>phone[string]绑定手机号
data>>qq[string]绑定QQid
data>>status[string]帐号状态0-正常、1-禁止
data>>email[string]邮箱9966662@qq.com
data>>credits[string]软件积分10
data>>jiaoyi[string]交易积分10
data>>weixin[string]绑定微信
sqltime[string]页面执行时间(秒)0.07813s

返回示例(JSON)
[PHP] 纯文本查看 复制代码
{
    "code": 200,
    "result": "OK",
    "count": 16,
    "data": {
        "uid": "2",
        "username": "demo",
        "email": "demo@qq.com",
        "credits": "120",
        "jiaoyi": "0",
        "groupid": "11",
        "grouptitle": "注册会员",
        "groupexpiry": 0,
        "adminid": "0",
        "token": "86a1_xx_2JDj92seLDbupmBBnsw1T26TieG_xx_2vomPvUebcB10ObDW2P_x_x_3QM0vAgEbA3P_xx_2h",
        "sgin": "38593A0D-DCF1-97A3-30EE-CBC41FC9",
        "dateline": "2022-11-01 00:00:00",
        "phone": "",
        "qq": "31584DB55485A5DA17334471FEBB0040",
        "weixin": "",
        "status": "0"
    },
    "sqltime": "0.03287s"
}

额外说明

错误提示码
错误码查询地址:点击访问
BUG提交:点击提交
QQ交流群:281079920
回复

使用道具 举报

 楼主| 发表于 2022-3-17 23:35:19 | 显示全部楼层
QQ解除绑定
接口说明:此接口是针对已经绑定QQ的账号,进行解绑操作。

接口详情
请求地址:http://demo35.xinxiuvip.com/plugin.php?id=xinxiuvip_network_plugin:qq
请求方式: GET   
返回格式: JSON\XML     /*默认返回JSON格式,如需返回XML格式,请在接口网址后面增加&output=xml参数*/

请求参数(所有参数值均URL加密后传输【注意GBK与UTF8编码区别】
参数类型是否必填说明示例
key[string]传输密钥123456
action[string]接口方法qq_login
rule[string]规则 例如:del 为解除QQ绑定  
                  code 为解绑机器码(1.03版本以上新增)
del

请求示例(GET)
[PHP] 纯文本查看 复制代码
http://demo35.xinxiuvip.com/plugin.php?id=xinxiuvip_network_plugin:qq&action=qq_login&key=123456&rule=del

返回参数所有接口返回数据含中文时“\u672c\u6846”,请用USC2进行解码
参数类型是否必含说明示例
code[number]http状态码200
result[string]错误信息状态码OK
count[number]数组成员数1
data[object]数组
data>>url[string]QQ登录地址,直接打开注意删除返回地址中\反斜杠
sqltime[string]页面执行时间(秒)0.00829s

返回示例(JSON)
[PHP] 纯文本查看 复制代码
{
    "code": 200,
    "result": "OK",
    "count": 1,
    "data": {
        "url": "https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id=101994861&redirect_uri=http://demo.xinxiuvip.com/plugin.php?id=xinxiu_network_plugin:qqcallback&state=del&scope=get_user_info"
    },
    "sqltime": "0.00239s"
}
[PHP] 纯文本查看 复制代码
{
        "code": 200,
        "result": "OK",
        "count": 1,
        "data": {
                "uid": "2"
        },
        "sqltime": "534.13489s"
}

额外说明
此接口为解除QQ绑定,解除后按照第一步操作,绑定其他QQ。

错误提示码
错误码查询地址:点击访问
BUG提交:点击提交
QQ交流群:281079920

回复

使用道具 举报

 楼主| 发表于 2022-3-17 23:35:29 | 显示全部楼层
QQ登陆跳转
接口说明:此接口通过QQ登陆绑定账号成功后,采用免登录状态自动跳转本站内指定网址。

接口详情
请求地址:http://demo35.xinxiuvip.com/plugin.php?id=xinxiuvip_network_plugin:qq
请求方式: GET   
返回格式: JSON\XML     /*默认返回JSON格式,如需返回XML格式,请在接口网址后面增加&output=xml参数*/

请求参数(所有参数值均URL加密后传输【注意GBK与UTF8编码区别】
参数类型是否必填说明示例
key[string]传输密钥123456
action[string]接口方法qq_login
rule[string]登陆跳转规则:url|http://demo.xinxiuvip.com/
注意:网址必须带http://
url|http://demo.xinxiuvip.com/

请求示例(GET)
http://demo35.xinxiuvip.com/plugin.php?id=xinxiuvip_network_plugin:qq&action=qq_login&key=123456&rule=url|http://demo.xinxiuvip.com


返回参数所有接口返回数据含中文时“\u672c\u6846”,请用USC2进行解码
参数类型是否必含说明示例
code[number]http状态码200
result[string]错误信息状态码OK
count[number]数组成员数1
data[object]数组
data>>url[string]QQ登录地址,直接打开注意删除返回地址中\反斜杠
sqltime[string]页面执行时间(秒)0.00829s

返回示例(JSON)
[PHP] 纯文本查看 复制代码
{
    "code": 200,
    "result": "OK",
    "count": 1,
    "data": {
        "url": "https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id=101994861&redirect_uri=http://demo.xinxiuvip.com/plugin.php?id=xinxiu_network_plugin:qqcallback&state=url|[url=http://demo.xinxiuvip.com/&scope=get_user_info]http://demo.xinxiuvip.com/&scope=get_user_info[/url]"
    },
    "sqltime": "0.00216s"
}


额外说明

错误提示码
错误码查询地址:点击访问
BUG提交:点击提交
QQ交流群:281079920

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|新秀网络验证系统API[软著登字第13061951号] ( 豫ICP备2021033257号-1 )

GMT+8, 2024-11-5 01:11 , Processed in 0.284966 second(s), 68 queries , Redis On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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