阅读背景:

实现QQ机器人报警

来源:互联网 

如题,空话不说,直接上代码。首先是登录QQ的小脚本

#!/usr/bin/perl
use Webqq::Client;
use Data::Dumper;
use Digest::MD5 qw(md5_hex);
use LWP::UserAgent;
use JSON;

my $qq = QQ号;
my $pwd = md5_hex("QQ密码");

my $client = Webqq::Client->new(debug=>0);#等于1开启debug
#############验证码##############
$client->load("PostImgVerifycode");
$client->on_input_img_verifycode() = sub{
    my ($img_verifycode_file) = @_;
    my $smtp = {
        smtp    =>"邮箱smtp服务器",
        user    =>"邮箱user",
        pass    =>"邮箱pass",
        from    =>"邮箱地址",
        to      =>"邮箱地址",
        from_title => "QQ机器人",
        subject => "验证码",
    };

    return &{$client->plugin("PostImgVerifycode")}($client,$img_verifycode_file,$smtp);
};
######################################
登录QQ的时候可能会用到验证码,须要的话会以邮件的情势发送到邮箱,打开邮件里边的连接地址提交便可。

$client->login( qq=> $qq, pwd => $pwd);


sub tuling{
    my $info = $_[0];
    my $UA = LWP::UserAgent->new;
    my $response = $UA->get(" #这里调用的事图灵机器人接口 实现了智能对话功效 用的话 自己去申请下地址 不用可以删掉该功效 
    my $str = $response->content;
    my $json = new JSON;
    my $json_obj = $json->decode("$str");
    return $json_obj->{"text"}
}

$client->on_receive_message = sub{
    	my $msg = shift;
	my $group_uin = $msg->{from_uin};
	if ($msg->{content} =~ m!(.*)@小傻(.*)!) {  #定义@甚么内容会触发下边的回复这里定义的是@小傻 可以依据须要做更改
		my $msg_content = 
          

如题,空话不说,直接上代码。首先是登录QQ的小脚本

#!/usr/bin/perl
use Webqq::Client;
use Data::Dumper;
use Digest::MD5 qw(md5_hex);
use LWP::UserAgent;
use JSON;

my $qq = QQ号;
my $pwd = md5_hex("QQ密码");

my $client = Webqq::Client->new(debug=>0);#等于1开启debug
#############验证码##############
$client->load("PostImgVerifycode");
$client->on_input_img_verifycode() = sub{
    my ($img_verifycode_file) = @_;
    my $smtp = {
        smtp    =>"邮箱smtp服务器",
        user    =>"邮箱user",
        pass    =>"邮箱pass",
        from    =>"邮箱地址",
        to      =>"邮箱地址",
        from_title => "QQ机器人",
        subject => "验证码",
    };

    return &{$client->plugin("PostImgVerifycode")}($client,$img_verifycode_file,$smtp);
};
######################################
登录QQ的时候可能会用到验证码,须要的话会以邮件的情势发送到邮箱,打开邮件里边的连接地址提交便可。

$client->login( qq=> $qq, pwd => $pwd);


sub tuling{
    my $info = $_[0];
    my $UA = LWP::UserAgent->new;
    my $response = $UA->get(" #这里调用的事图灵机器人接口 实现了智能对话功效 用的话 自己去申请下地址 不用可以删掉该功效 
    my $str = $response->content;
    my $json = new JSON;
    my $json_obj = $json->decode("$str");
    return $json_obj->{"text"}
}

$client->on_receive_message = sub{
    	my $msg = shift;
	my $group_uin = $msg->{from_uin};
	if ($msg->{content} =~ m!(.*)@小傻(.*)!) {  #定义@甚么内容会触发下边的回复这里定义的是@小傻 可以依据须要做更改
		my $msg_content = $1 . $2;
		my $s_msg_content = tuling("$msg_content");
		my $s_msg = $client->create_group_msg(to_uin=>"$group_uin", content=> "$s_msg_content",);
		$client->send_group_message($s_msg);
	}
};

$client->load("Openqq");
$client->on_run = sub{
	$client->call("Openqq",host=>"0.0.0.0",port=>5000);  ##这里是开启api,开启后本地会监听一个端口 通过该端口发送查询等一系列操作
};
$client->run();
##以后就是调用api发送qq资讯的脚本啦 以下
#!/usr/bin/perl
use strict;
use warnings;
use LWP::UserAgent;
use JSON;
use URI::Escape;


sub get_gid {
    my $group_name = $_[0];
    my $UA = LWP::UserAgent->new;
    my $response = $UA->get(" #定义api地址  只须要调换ip
    my $str = $response->content;
    my $json = new JSON;
    my $json_obj = $json->decode("$str");
    foreach my $group (@{ $json_obj }){
		if ($group->{"ginfo"}->{"name"} eq "$group_name"){
				return $group->{"ginfo"}->{"gid"} ;
		}
	}
}

sub send_qq_mess {
    my $content = $_[0];
    my $gid = get_gid($_[1]);
    my $UA = LWP::UserAgent->new;
    my $response = $UA->get(" #定义api地址 只须要调换ip
    return $response->content;
}

my $c = uri_escape($ARGV[0]);
print send_qq_mess($c,"Monitoring_alarm") ;  # 这里的Monitoring_alarm是指要发送报警的群名称  必需是QQ所在的群

第一个脚本运行的话 加上nohup 否者验证码会丢tmp目录下 不会发邮件 QQ登录胜利后 查看是不是监听了5000端口(可改),一切ok了 履行第二个脚本 比如说名字是 send ,那末履行格局为send your_send_content 以后你刚才定义的群名称的那个群会收到资讯 这个脚本由于有api可以任意调用,本人初学perl , 大神别见笑。 


最后感激Webqq::Client模块的供给者。


本篇文章出自 “perling” 博客,请务必保存此来路https://zhaolin.blog.51cto.com/9397923/1630115

 . ; my $s_msg_content = tuling("$msg_content"); my $s_msg = $client->create_group_msg(to_uin=>"$group_uin", content=> "$s_msg_content",); $client->send_group_message($s_msg); } }; $client->load("Openqq"); $client->on_run = sub{ $client->call("Openqq",host=>"0.0.0.0",port=>5000);  ##这里是开启api,开启后本地会监听一个端口 通过该端口发送查询等一系列操作 }; $client->run();#!/usr/bin/perl use Webq




你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: