给“qq群”发送消息
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了给“qq群”发送消息相关的知识,希望对你有一定的参考价值。
之前小程介绍过,怎么给“微信群”批量发送消息(当然是用程序的方式,而不是快速打字),延续这个功能,如果对于QQ群,有没有办法呢?
这里介绍一个办法,使用qqbot。
本文介绍如何通过qqbot,实现对QQ的所有群或特定的群,自动发送消息。
qqbot是什么呢?
qqbot,就是qq机器人,是一个开源项目,git地址:
<https://github.com/pandolia/qqbot>
qqbot完成了消息侦听、发送,管理成员(禁言、删除、设置管理员等操作)等功能。通过它,可以做到很多有意思的需求。
qqbot使用的是SmartQQ的接口,而smartqq是腾讯的网页版qq。具体的接口,不是小程讲解的重点,因为小程还是从“使用”的角度来介绍它的知识。而且,小程使用的是macos。
(1)安装qqbot
sudo pip install qqbot
比如,小程在python的虚拟环境安装了qqbot:
(2)以命令的方式,使用qqbot
安装qqbot后,可以直接使用qqbot提供的命令行来使用它的功能(另一种方式是写代码)。
启动qqbot:
qqbot
这时,成功的话,会有一个二维码弹出来,在手机qq上扫描二维码,并“允许登陆SmartQQ”,可以看到qqbot启动时的一些信息:
之后,可以看到qqbot在监听信息:
这时,再打开一个终端的窗口,使用qqbot的命令进行操作。比如:
查看qqbot有什么功能:
qq help
查看所有好友:
qq list buddy
查看所有群:
qq list group
查看所有群(精确与部分配对):
qq list group php
qq list group :like:PHP
查看群成员信息:
qq list group-member "广州PHP程序员"
向群发送消息:
qq send group "php交流" "大家好"
qq send group ":like:php交流" "大家好"
(3)写代码,使用qqbot
一般来说,需要写代码调用qqbot来定制自己的需求。
对于代码的关键点,小程简单介绍一下。
一个关键点是登陆,qqbot登陆后才能给“qq群”发送消息。登陆的代码,参考下图:
另一个关键点是发送消息,参考下图:
显然,以上的“写代码”都是在命令终端直接操作,这种方式写代码并不爽。所以,小程写了一个sendtogroup.py脚本,实现了给指定群(支持部分配对)发送消息的功能,而且有两种发送方式(跟之前的“微信群”发送消息相同),一种是“反复刷同一句话”,另一种是“逐字发送”。
这个脚本的代码如下:
# -*- coding: utf-8 -*-
from qqbot import _bot as bot
import sys
‘‘‘
sendtype:
0 --重复发送消息,重复times次
1 --消息逐字(一字一行)发送,此时times参数无效
‘‘‘
def sendgroup(groupname, info, sendtype, times):
bot.Login([‘-q‘, ‘2547394427‘])
gname = ‘:like:‘ + groupname
gl = bot.List(‘group‘, gname)
if sendtype == 0:
for g in gl:
for i in range(times):
bot.SendTo(g, info)
elif sendtype == 1:
for g in gl:
for i in range(len(info)):
bot.SendTo(g, info[i])
if __name__ == ‘__main__‘:
params = sys.argv[1]
params = params.split()
gname = params[0].decode(‘utf8‘)
info = params[1].decode(‘utf8‘)
stype = int(params[2])
times = int(params[3])
sendgroup(gname, info, stype, times)
‘‘‘
比如,可以这样运行这个脚本,
重复刷一句话10次:
python ./sendtogroup.py "php 你们好啊 0 10"
或者,一句话按字来发送:
python ./sendtogroup.py "php 你们好啊 1 0"
‘‘‘
可以这样调用这个脚本,一种方式是“刷屏”,参考下图:
另一种调用方式是“逐字发送”,参考下图:
再比如(逐字发送):
总结一下,本文介绍了使用qqbot来实现给QQ群,自动(批量)发送消息的功能,从使用的角度,只是qqbot的函数的简单调用,难度系数为2。
以上是关于给“qq群”发送消息的主要内容,如果未能解决你的问题,请参考以下文章