用鼠标与指尖
让互联网更加有趣

PHP:QQ群一键强制加群API源代码

PHP:QQ群一键强制加群API源代码-小伟博客

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

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

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

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

//注意:在所有例程中34544417是群号,请在测试中自行更改!

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源代码:

<?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是群号,后面的参数是类型。

原创作者:小伟 QQ523077333
小伟博客网 http://www.mlwei.com
名流互联 http://www.55ml.cn

支付宝扫码打赏 微信扫码打赏

如果文章对你有帮助,欢迎点击上方按钮打赏作者

未经允许不得转载:小伟博客 » PHP:QQ群一键强制加群API源代码

分享到:更多 ()

评论 4

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #2

    现在貌似用不了了,加群需要收费进群

    Ninth2个月前 (09-25)Reply
    • 这只是直接加群链接,并不是免验证加群。

      小伟2个月前 (09-26)Reply
  2. #1

    测试失败

    姬长信2个月前 (09-20)Reply
    • 具体怎么测试失败呢亲?加我QQ测试测试?

      小伟2个月前 (09-21)Reply

小伟博客 · 给你感兴趣的内容

联系我们官方交流群