手机登录网页版qq帐号 Python&QQBot:一个简单、好用的QQ机器人(3)

电脑杂谈  发布时间:2018-02-07 19:44:49  来源:网络整理

# 给 好友“jack” 发消息 “你好”

qq send buddy jack 你好

# 给 群“198班” 发消息 “大家好”

qq send group 198班 大家好

# 给 QQ 为 12345 的好友发消息

qq send buddy 12345 xxx

# 给讨论组发消息

qq send discuss MyDiscuss hello

可以在消息内容中嵌入“/可爱”等表情关键词来向对方发送表情,详见 facemap.py。还可以在消息内容中使用 \n,\t 这两个转义字符(如: send buddy jack 第一行\n第二行)。

群管理命令中的 $ginfo 和 $minfo 和 list 命令中的第三、四个参数格式一致。例如:

# 禁止 群“456班” 中的 jack,mike,jim 发言( 2 分钟)

qq group-shut 456班 jack,mike,jm 120

以上所有命令都提供对应的 HTTP API 接口,供 web 前端开发者调用,接口的 url 地址为 :8188/{command} ,只需要将 qq 后面的命令各参数用 "/" 分隔开替换 url 中的 command 就可以了,如: :8188/send/buddy/jack/hello ,其他示例详见 urltestbot.md 。注意:如果命令中含有中文或特殊字符,需要先进行 url 编码( utf8 ),例如,调用:8188/send/buddy/jack/nihao%20%E4%BD%A0%E5%A5%BD%20wohao 将发送消息 ”nihao 你好 wohao“ 。(提示:在 JavaScript 中,可以使用 encodeURIComponent 函数进行编码)。

实现你自己的 QQ 机器人

实现自己的 QQ 机器人非常简单,只需要定义一个自己的消息响应函数并按插件加载。示例代码:

# -*- coding: utf-8 -*-

def onQQMessage(bot, contact, member, content):

if content == '-hello':

bot.SendTo(contact, '你好,我是QQ机器人')

elif content == '-stop':

bot.SendTo(contact, 'QQ机器人已关闭')

bot.Stop()

注意,上面注册的响应函数的函数名必须为 “onQQMessage” ,函数参数也必须和上面的一致。

将以上代码另存为 sample.py (注意保存为 utf8 编码的文件)。放到 ~/.qqbot-tmp/plugins/ 目录下( ~ 代表用户主目录, win7 下为 C:\Users\xxx ),或系统中可以 import 到的目录下(如 python 的安装目录下的 Lib/site-packages 目录)。

在控制台输入 qq unplug sample 可以卸载此插件及相应的回调函数。可以同时加载多个插件,此时各插件中的相应函数会依次被调用(但调用顺序和加载次序无关)。

bot : QQBot 对象,提供 List/SendTo/Stop/Restart 等接口,详见本文档第五节

contact : QContact 对象,消息的发送者,具有 ctype/qq/uin/nick/mark/card/name 等属性

member : QContact 对象,仅当本消息为 群消息或讨论组消息 时有效,代表实际发消息的成员

content : str 对象,消息内容


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-65875-3.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...