php 跳转qq群代码_QQ群一键强制加群API源代码

image

只需要群号实现一键加群,这个API是QQ官方的加群接口得到的,其中包含了三个接口,分别供PC和IOS端和安卓端调用实现加群和直接进群。

警告:本API仅供开发者学习交流使用,请勿用于非法用途。

分析接口调用以及PHP写法的思路:

我们通过QQ群的加群链接抓到GET包:

http://wp.qq.com/wpa/g_wpa_get?guin=34544417 //主要获取加群链接key的接口

我们发现这个接口提交GET请求后直接返回{"retcode":100101}

这是腾讯常见的错误提示,也就是说参数有错误。

经过我的研究发现,GET这个接口后被重定向到了这个接口:

http://shang.qq.com/wpa/g_wpa_get?guin=34544417

然后我们再get发现还是返回{"retcode":100101}

经过反复的测试得到一个结论:就是需要加请求协议头:

于是,我加了最基本的请求头的参数:

Content-Type

Accept

Referer

User-Agent

然后我们再GET成功返回了我们要的包含key的数据:

{"retcode":0,"result":{"data":[{"d":"0101020001020004020f1b21","guin":34544417,"key":"68c6e876725f2405ac41260b37f172a926536c2adad746683f924e5bbe40aa15"}]}}

然后我们要做的就是先取出这个key

68c6e876725f2405ac41260b37f172a926536c2adad746683f924e5bbe40aa15

然后我们根据常用的加群链接来获取自己需要的直接加群链接:

http://wp.qq.com/wpa/qunwpa?idkey=取得的key

经过测试这又是个重定向链接到:

http://shang.qq.com/wpa/qunwpa?idkey=取得的key

根据上面的协议头继续get:

看到了我们经常通过加群链接加群的跳转页面:

实际上就是http://shang.qq.com/wpa/qunwpa?idkey=取得的key

然后我们在这个跳转页面发现了关键的javascript:

var rawuin = 34544417;

var qsig = "tencent://groupwpa/?subcmd=all\u0026param=7B2267726F757055696E223A33343534343431372C2274696D655374616D70223A313533353435313938377D0A";

var k = "http%3A%2F%2Fqm.qq.com%2Fcgi-bin%2Fqm%2Fqr%3Fk%3DdU_ErRCUIx0Tk60fxnGotxbZAgiMKdeF";

var qun_type = "0";

var referer = "http://wp.qq.com/wpa/qunwpa?idkey=7b44d484b4005f743aa4b2fdf6f201e23e42bc4d4870fde1ee9e66cc95bbcfcd";

很明显这是腾讯定义的加群链接

经过分析发现这些url都是有定义的

其中rawuin是群号

qsig是PC端直接加群的链接

k是移动端加群的链接

referer是重定向的链接

然后我们在后面的javascript代码中分析得到以下结论:

如果是当前链接打开直接重定向加群链接

如果是移动端打开直接重定向到k 的链接

如果是PC端打开直接重定向到qsig 的链接

详细说明(本人经过多终端测试得出的结论):

PC端加群链接(访问直接弹出加群窗口或群聊天窗口,仅支持PC,IOS):tencent://groupwpa/?subcmd=all\u0026param=7B2267726F757055696E223A33343534343431372C2274696D655374616D70223A313533353435313938377D0A

移动端加群链接(URL需要转码,访问直接跳转到QQ APP群资料页面,支持PC,iOS,安卓):http%3A%2F%2Fqm.qq.com%2Fcgi-bin%2Fqm%2Fqr%3Fk%3DdU_ErRCUIx0Tk60fxnGotxbZAgiMKdeF

公用加群链接(页面自动判断用户平台,访问自动判断你的终端来加群,支持PC,iOS):http://wp.qq.com/wpa/qunwpa?idkey=7b44d484b4005f743aa4b2fdf6f201e23e42bc4d4870fde1ee9e66cc95bbcfcd

一键加群API接口PHP源代码:

$guin = @$_REQUEST['guin']; //接收群号

$type = @$_REQUEST['type']; //接收类型

if ($guin != '')

{

$url = 'http://shang.qq.com/wpa/g_wpa_get?guin='.$guin;

$data = get($url);

$key = GetBetween($data,'key":"','"}'); //取得key

$url = 'http://shang.qq.com/wpa/qunwpa?idkey='.$key;

$body = get($url); //取得跳转页面源码

if ($type != '')

{

if ($type == '1') //如果类型为1,取得PC端加群链接

{

$link = GetBetween($body,'var qsig = "','";'); //取得PC端加群链接

$link = str_replace('\u0026','&',$link);

//echo $link;

header('Location:'.$link); //重定向加群链接直接加群

}

if ($type == '2') //如果类型为2,取得移动端加群链接

{

$link = GetBetween($body,'var k = "','";');

$link = urldecode($link);

//echo $link;

header('Location:'.$link); //重定向加群链接直接加群

}

if ($type == '3') //如果类型为3,取得公用加群链接

{

//echo $url;

header('Location:'.$url); //重定向加群链接直接加群

}

}else{

//echo $body;

header('Location:'.$url);

}

}else{

echo '群号guin参数不正确';

}

function GetBetween($content,$start,$end){

$r = explode($start, $content);

if (isset($r[1])){

$r = explode($end, $r[1]);

return $r[0];

}

return '';

}

function get($url)

{

$header = array (

"Content-Type: application/x-www-form-urlencoded",

'Accept: */*',

"Referer: ".$url,

'User-Agent: Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1)',);

$ch = curl_init();

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);

curl_setopt($ch, CURLOPT_HTTPHEADER, $header);

curl_setopt($ch, CURLOPT_URL, $url);

$output = curl_exec($ch);

curl_close($ch);

return $output;

}

?>

调用方式

公用一键加群:https://api.mlwei.com/qun/?guin=34544417

PC端加群:https://api.mlwei.com/qun/?guin=34544417&type=1

移动端加群:https://api.mlwei.com/qun/?guin=34544417&type=2

公用加群链接:https://api.mlwei.com/qun/?guin=34544417&type=3

注:34544417是群号,后面的参数是类型。

转自小伟博客

  • 2
    点赞
  • 3
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:数字20 设计师:CSDN官方博客 返回首页
评论

打赏作者

Purple Onion

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值