出售本站【域名】【外链】

首页 AI人工智能软件 qqAI人工智能 微信AI人工智能 抖音AI人工智能 快手AI人工智能 云控系统 手机AI人工智能

无极哥来讲讲微信云控系统通讯录拉群的实现原理,及其核心代码

2021-12-24

无极哥来讲讲微信云控系统通讯录拉群的真现本理,及其焦点代码

2019-06-10 17:50 起源: 无极裂变

本题目:无极哥来讲讲微信云控系统通讯录拉群的真现本理,及其焦点代码

微信云控系统,其观念是相应付微信群控系统的。微信群控系统是通过usb线传输数据控制手机停行模拟收配的,而微信云控系统则是通过网络传输数据收配手机端。也便是从效逸器下发号令得手机上,手机端执止各类模拟收配。

微信云控系统次要用到的技术有效逸器推送技术,客户端接管数据,并执止模拟点击收配。效逸器推送正在那里咱们次要用到的是推送透传,各人可以回收自建推送平台,那个就比较省事,要依据和谈来写。另有便是运用如今曾经很是成熟的第三方效逸,有个推,极光,百度等等。各人可以去理解下。客户端接管到效逸器端传送的号令后,触发相应的收配。客户实个模拟点击真现,正在那里咱们运用的是uiautomator,可模拟各类点击,输入等收配。

假如还须要虚拟定位,一键换机等收配,则须要用到Android的劫持工具xposed。那是个罪能很壮大的第三方工具,可以劫持任何你想扭转的数据。

云控系统真现的要害是效逸器实个推送,正在咱们的云控系统中次要是借助第三方推送效逸,那里运用的是个推。各人也可以有差异的选择,那个是一视同仁的。

效逸器端焦点推送源码为:

//

//效逸端推送接口,撑持三个接口推送

//1.PushMessageToSingle接口:撑持对单个用户停行推送

//2.PushMessageToList接口:撑持对多个用户停行推送,倡议为50个用户

//3.pushMessageToApp接口:对单个使用下的所有用户停行推送,可依据省份,标签,机型过滤推送

//

//单推接口案例

public function pushMessageToSingle(){

//var_dump('./'.__ROOT__ . 'touchuan/' . 'IGt.Push.php');exit();

//require_once('./'.__ROOT__ . 'touchuan/' . 'IGt.Push.php');

//$igt = new \IGeTui(HOST,APPKEY,MASTERSECRET);

$igt = new \IGeTui(NULL,APPKEY,MASTERSECRET,false);

//音讯模版:

// 1.TransmissionTemplate:透传罪能模板

// 2.LinkTemplate:通知打开链接罪能模板

// 3.NotificationTemplate:通知透传罪能模板

// 4.NotyPopLoadTemplate:通知弹框下载罪能模板

// $template = IGtNotyPopLoadTemplateDemo();

// $template = IGtLinkTemplateDemo();

// $template = IGtNotificationTemplateDemo();

$template = $this->IGtTransmissionTemplateDemo();

//个推信息体

$message = new \IGtSingleMessage();

$message->set_isOffline(true);//能否离线

$message->set_offlineExpireTime(3600*12*1000);//离线光阳

$message->set_data($template);//设置推送音讯类型

// $message->set_PushNetWorkType(0);//设置能否依据WIFI推送音讯,1为wifi推送,0为不限制推送

//接管方

$target = new \IGtTarget();

$target->set_appId(APPID);

$target->set_clientId(CID);

// $target->set_alias(Alias);

try {

$rep = $igt->pushMessageToSingle($message, $target);

var_dump($rep);

echo ("<br><br>")

}catch(RequestException $e){

$requstId =e.getRequestId();

$rep = $igt->pushMessageToSingle($message, $target,$requstId);

var_dump($rep);

echo ("<br><br>");

}

}

//多推接口案例

public function pushMessageToList($idsArr,$cmd)

{

putenv("gexin_pushList_needDetails=true");

putenv("gexin_pushList_needAsync=true");

$igt = new \IGeTui(HOST, APPKEY, MASTERSECRET);

//音讯模版:

// 1.TransmissionTemplate:透传罪能模板

// 2.LinkTemplate:通知打开链接罪能模板

// 3.NotificationTemplate:通知透传罪能模板

// 4.NotyPopLoadTemplate:通知弹框下载罪能模板

// var_dump("ssssssssssss");

//$template = IGtNotyPopLoadTemplateDemo();

//$template = IGtLinkTemplateDemo();

//$template = IGtNotificationTemplateDemo();

$template = $this->IGtTransmissionTemplateDemo($cmd);

//个推信息体

$message = new \IGtListMessage();

$message->set_isOffline(true);//能否离线

$message->set_offlineExpireTime(3600 * 12 * 1000);//离线光阳

$message->set_data($template);//设置推送音讯类型

// $message->set_PushNetWorkType(1); //设置能否依据WIFI推送音讯,1为wifi推送,0为不限制推送

// $contentId = $igt->getContentId($message);

$contentId = $igt->getContentId($message,"toList任务别名罪能");//依据TaskId设置组名,撑持下划线,中文,英文,数字

foreach ($idsArr as $k=>$v) {

$target = new \IGtTarget();

$target->set_appId(APPID);

$target->set_clientId($v);

// $target1->set_alias(Alias);

$targetList[$k] = $target;

}

//接管方1

$rep = $igt->pushMessageToList($contentId, $targetList);

return $rep;

// var_dump($rep);

// echo ("<br><br>");

}

Android端接管数据执止号令焦点代码为:

@Override

public void onReceiveMessageData(Context context, GTTransmitMessage msg) {

String appid = msg.getAppid();

String taskid = msg.getTaskId();

String messageid = msg.getMessageId();

byte[] payload = msg.getPayload();

String pkg = msg.getPkgName();

String cid = msg.getClientId();

// 第三方回执挪用接口,actionid领域为90000-90999,可依据业务场景执止

boolean result = PushManager.getInstance().sendFeedbackMessage(context, taskid, messageid, 90001);

Log.d(TAG, "call sendFeedbackMessage = " + (result ? "success" : "failed"));

Log.d(TAG, "onReceiveMessageData -> " + "appid = " + appid + "\ntaskid = " + taskid + "\nmessageid = " + messageid + "\npkg = " + pkg

+ "\ncid = " + cid);

if (payload == null) {

Log.e(TAG, "receiver payload = null");

} else {

data = new String(payload);

Log.d(TAG, "receiver payload = " + data);

正在Android端接管到数据后,停行相应的号令收配,联结上篇文章中的uiautomator

停行模拟点击,模拟输入等等的真现。须要源码及有疑问,关注公寡号一起交流

— 完 —

微信公寡号:wuji1a

【无极圈】高端社群专注于钻研和分享:全网低老原引流,互联网暴利名目

流质变现渠道,电商经营,等各类网络销售形式和商业形式

成员次要波及止业: 互联网金融 微商 电商 自媒体 手游 O2O

以及真体店老板,真体企业老板等传统止业返回搜狐,查察更多

热门文章

推荐文章

友情链接: 永康物流网 本站外链出售 义乌物流网 本网站域名出售 手机靓号-号码网