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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#!/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();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
##之后就是调用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地址 
    #api地址格式为 ip:port/fucation(server端定义的ip 和 port) 
    ###fucation包括以下几个
      #信息获取
        #/openqq/get_user_info           #查询用户信息
        #/openqq/get_friend_info         #查询好友信息
        #/openqq/get_group_info          #查询群信息
        #/openqq/get_discuss_info        #查询讨论组信息
        #/openqq/get_recent_info         #查询最近联系人列表信息
         
        #消息发送,均支持GET和POST
        #/openqq/send_message            #发送好友消息 参数id=xxx&content=xxx 
        #/openqq/send_group_message      #发送群消息   参数gid=xxx&content=xxx
        #/openqq/send_discuss_message    #发送讨论组消息 参数did=xxx&content=xxx (由于腾讯限制,当前无法成功发送)
        #/openqq/send_sess_message       #发送群临时消息  参数 gid=xxx&id=xxx&content=xxx
        #/openqq/send_sess_message       #发送讨论组临时消息 参数 did=xxx&id=xxx&content=xxx 
    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模块的提供者。

实现QQ机器人报警的更多相关文章

  1. Python3实现QQ机器人自动爬取百度文库的搜索结果并发送给好友(主要是爬虫)

    一.效果如下: 二.运行环境: win10系统:python3:PyCharm 三.QQ机器人用的是qqbot模块 用pip安装命令是: pip install qqbot (前提需要有request ...

  2. zabbix实现QQ邮件报警通知--技术流ken

    前言 前几天搜了下网上使用zabbix邮件报警通知的文章,大多数还是使用mailx的方法,过程配置起来比较冗余繁琐,这几天想着把自己平时用到的qq邮件报警的方法分享出来供大家参考,以此减少不必要的步骤 ...

  3. 第一讲 从头开始做一个web qq 机器人,第一步获取smart qq二维码

    新手教程: 前言:最近在看了一下很久很久以前做的qq机器人失效了,最近也在换工作目前还在职,时间很挺宽裕的.就决定从新搞一个web qq机器人 PC的协议解析出来有点费时间以后再做. 准备工作: 编译 ...

  4. 基于WebQQ3.0协议写一个QQ机器人

    最近公司需要做个qq机器人获取qq好友列表,并且能够自动向选定的qq好友定时发送消息.没有头绪,硬着头皮上 甘甜的心情瞬间变得苦涩了 哇 多捞吆 1.WEBQQ3.0登陆协议 进入WEBQQ, htt ...

  5. 体验 QQ机器人C# SDK 1.X 特性总结

    主要特性 依赖注入 框架本身采用 Autofac 作为依赖注入框架.进行插件开发时,必然会使用到该框架.建议开发者阅读官方文档熟悉其用法.https://autofac.readthedocs.io/ ...

  6. 使用C# 开始第一个QQ机器人

    本示例将会使用”嘤鹉学舌”这个小插件的实现来演示如何使用Newbe.Mahua实现第一个机器人插件. 插件功能 自动将发送者的消息回发给发送人,嘤鹉(Parrot,其实是说嘤嘤嘤怪)学舌. 开发环境要 ...

  7. zabbix学习系列之QQ消息报警

    安装依赖包 环境 Zabbix: 3.2 OS:Centos 安装依赖包 yum install lrzsz chrony gcc gcc-c++ git openssl-devel perl-Ext ...

  8. python实现qq机器人qqbot

    title: python实现qq机器人qqbot tags: python date: 2018-6-1 10:19:00 --- 以下内容为转载 一.介绍 qqbot 是一个用 python 实现 ...

  9. NoneBot+酷Q,打造QQ机器人

    NoneBot 是一个基于 酷Q 的 Python 异步 QQ 机器人框架,它会对 QQ 机器人收到的消息进行解析和处理,并以插件化的形式,分发给消息所对应的命令处理器和自然语言处理器,来完成具体的功 ...

随机推荐

  1. SQL日期格式

    ) :: ),'-',''),' ',''),':','') ) , ) ) , ) ) , ) ) , ) 其它不常用的日期格式转换方法: ) , ) ) , ) ) , ) ) , ) ) , ) ...

  2. Delphi进制转换(二进制/十进制/十六进制)

    http://www.cnblogs.com/ywangzi/archive/2012/12/12/2815219.html   Delphi进制转换(二进制/十进制/十六进制)  2009-11-2 ...

  3. InnoSetup打包exe安装应用程序,并添加卸载图标 转

    http://blog.csdn.net/guoquanyou/article/details/7445773 InnoSetup真是一个非常棒的工具.给我的印象就是非常的精干.所以,该工具已经一步步 ...

  4. APKTool 提取APK文件的资源

    APK文件本身是一个压缩包,直接用解压工具即可打开,但里面的文件都已被编码为二进制文件格式,不能直接看,比如程序描述文件AndroidManifest.xml. 使用apktool工具可以将这些文件解 ...

  5. iOS 中关闭键盘方法

    在 iOS 程序中当想要在文本框中输入数据,轻触文本框会打开键盘.对于 iPad 程序,其键盘有一个按钮可以用来关闭键盘,但是 iPhone 程序中的键盘却没有这样的按钮,不过我们可以采取一些方法关闭 ...

  6. 蓝桥杯---汉字取首字母(位运算 & 水题)

    确实题目虽然有点水,但是开始的时候好像还真的没有想到怎么提取出这个编号一不小心感觉可以可以用unsigned char 这种类型,直接转为16进制,但是之后发现虽然第一次在codeblock中还行,但 ...

  7. Swift学习(四)常量&变量&基础数据类型

    常量和变量 常量: 使用let关键词来声明一个常量 所指向的是一个特定类型的值,如数字10或者字符”hello”,常量的值是不能够被二次修改的 编程时使用常量能够让代码看起来更加安全和简洁! let ...

  8. django中添加用户

    在django中添加用户,直接在auth_user表中添加会有问题,因为这里密码是加密的,可以通过manage.py shell加入 创建User: 1 >>> from djang ...

  9. hive安装(一)

    1.解压 [root@cluster3 hadoop]# tar -zxvf apache-hive--bin.tar.gz 2.修改环境变量 export HIVE_HOME=/usr/local/ ...

  10. idea 文件名乱码问题的解决

    参考:http://www.cnblogs.com/xingma0910/p/4651889.html idea:文件名乱码: