- 在VisualStudio中部署GDAL库的C++版本(包括SQLite、PROJ等依赖)
- Android开机流程介绍
- STM32CubeMX教程31USB_DEVICE-HID外设_模拟键盘或鼠标
- 深入浅出Java多线程(五):线程间通信
QQ 频道机器人是一种可以在 QQ 频道中与用户进行互动的服务。这个教程旨在帮助新手学习如何使用 Python 的官方SDK,快速实现一些基本的机器人功能.
pip install qq-bot
pip install pyyaml
config.yaml
文件,填入机器人的 App ID 和 Token,并保存:token:
appid: "123"
token: "xxxx"
robot.py
文件,导入依赖包并设置机器人自动回复消息的功能:import asyncio
import os.path
import qqbot
from qqbot.core.util.yaml_util import YamlUtil
# 从配置文件读取机器人的信息
test_config = YamlUtil.read(os.path.join(os.path.dirname(__file__), "config.yaml"))
async def _message_handler(event, message: qqbot.Message):
msg_api = qqbot.AsyncMessageAPI(t_token, False)
qqbot.logger.info("event %s" % event + ",receive message %s" % message.content)
# 自动回复消息
message_to_send = qqbot.MessageSendRequest(content="你好", msg_id=message.id)
await msg_api.post_message(message.channel_id, message_to_send)
if __name__ == "__main__":
t_token = qqbot.Token(test_config["token"]["appid"], test_config["token"]["token"])
qqbot_handler = qqbot.Handler(
qqbot.HandlerType.AT_MESSAGE_EVENT_HANDLER, _message_handler
)
qqbot.async_listen_events(t_token, False, qqbot_handler)
python3 /home/demo/robot.py
我们将robot.py里面的代码改为关键词回复,可以在 _message_handler 函数中使用条件语句检查收到的消息内容,然后根据关键词回复不同的内容.
import asyncio
import os.path
import qqbot
from qqbot.core.util.yaml_util import YamlUtil
# 从配置文件读取机器人的信息
test_config = YamlUtil.read(os.path.join(os.path.dirname(__file__), "config.yaml"))
async def _message_handler(event, message: qqbot.Message):
msg_api = qqbot.AsyncMessageAPI(t_token, False)
qqbot.logger.info("event %s" % event + ", receive message %s" % message.content)
# 检查消息内容是否包含关键词
if "你好" in message.content:
reply_content = "你也好!"
elif "再见" in message.content:
reply_content = "再见,期待下次见面!"
else:
reply_content = "我不太明白你说的是什么..."
# 回复消息
message_to_send = qqbot.MessageSendRequest(content=reply_content, msg_id=message.id)
await msg_api.post_message(message.channel_id, message_to_send)
if __name__ == "__main__":
t_token = qqbot.Token(test_config["token"]["appid"], test_config["token"]["token"])
qqbot_handler = qqbot.Handler(
qqbot.HandlerType.AT_MESSAGE_EVENT_HANDLER, _message_handler
)
qqbot.async_listen_events(t_token, False, qqbot_handler)
到自己的测试频道艾特自己的机器人发送关键词即可 这里我添加了一个简单的条件语句,检查消息内容中是否包含关键词 "你好" 或 "再见",然后根据关键词回复不同的内容。 如果消息内容中包含关键词,则回复相应的内容;否则,回复一个默认的消息.
最后此篇关于开发QQ官方机器人的文章就讲到这里了,如果你想了解更多关于开发QQ官方机器人的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
这个问题在这里已经有了答案: What does the construct x = x || y mean? (12 个答案) 关闭 8 年前。 我已经下载了一个 javascript 脚本,第一
此前苹果下架QQ HD iPadOS 版,因此无法登陆QQ HD账号,这也给不少用户们造成了困扰。那么QQ HD平板版为什么下架无法使用呢?此外QQ HD版本用不了要如何解决呢?下面一起来看看吧!
我正要对两个 select 语句执行 join。 select x.A from (select blah - Q1 )x join (select blah - Q2 ) y on x.A = y.
最近做一个邮箱验证的功能,研究了一会,搞定了邮件的自动发送。下面用qq邮箱作为演示,一步一步来解释: 代码下载地址 首先,就是做到邮件的发送,代码如下: ?
常用的正则匹配表达式 正则表达式--验证手机号码:13[0-9]{9} 实现手机号前带86或是+86的情况:^((\+86)|(86))?(13)\d{9}$ 电话号码与手机号码同时验证:(^(\
能够查看您的数据很有帮助。当您有多个变量时,您可以形成一个散点图矩阵,例如,pairs()。散点图矩阵为您提供一组数据的二维边缘投影。 set.seed(8092) X <- matrix(rnorm
我有两个目录,每个目录都有一个文件: $ ls -l "test dir[" -rw-r--r-- 1 root media 0B 11 Dec 16:53 .ignoreme 和 $ l
我正在我的 MVC 3 应用程序中开发文件上传功能。我让它正常工作(有点),问题出在 onComplete 函数中,当我尝试删除 qq-uploader 类时,它会从所有选中的表格单元格中删除。工作流
我需要为网站的中文翻译实现相当于推文按钮,即不是我已经得到的“在微博上分享”按钮(使用生成器 here ) , 而是一个腾讯/QQ 微博分享按钮。 到目前为止我做了什么: 订阅了微博(阅读自动谷歌翻译
我是新手,通常来自 R。我想创建一个包含多条线的 QQ-Plot。 我有一个 beta 分布式数据集我想为 beta 分布尝试不同的参数,并在 one QQ-Plot 中比较它们以获得更好的比较。如果
本文实例为大家分享了php微信分享到朋友圈、QQ、朋友、微博的具体代码,供大家参考,具体内容如下 前台代码 <script src="http://res.wx.qq.com
我一直在尝试用 python 绘制泊松分布的 QQ 图。这是我到目前为止所拥有的: import numpy as np import statsmodels.api as sm import sci
我正在使用插件qq.FileUploader . 在提交文件之前,我想知道是否已经上传过同名文件。 我正在使用此代码: var uploader = new qq.FileUploader({
这个问题在这里已经有了答案: Convert Pandas Column to DateTime (8 个答案) 关闭 4 年前。 我有一个 pandas 数据框,其中有一列应该指示财政季度结束。格
本文实例讲述了php版微信支付api.mch.weixin.qq.com域名解析慢原因与解决方法。分享给大家供大家参考,具体如下: 微信支付api.mch.weixin.qq.com域名解析慢了,
我怎样才能像这样插值: {-# LANGUAGE QuasiQuotes #-} import Text.RawString.QQ myText :: Text -> Text myText myVa
对不起,如果这在某处记录,但我一直无法找到它。将括号定界符与 qq 一起使用时, 代码未插值: qq.raku #!/usr/bin/env raku say qq{"Two plus two": {
我生成了一个 QQ 图来将我的随机数生成器的分布与 beta 分布进行比较。我可以通过 使用 R 中常用的绘图命令来完成此操作 samples1 <- read.csv("test1-clean.da
所以我得到了一个使用 AJAX 动态加载的对话框,在那个框中,我有一个文件输入被 Valums qq.FileUploader 替换。加载内容后,我确实在 FileUploader 上调用了 init
我有一个原始样本数据和它的模拟数据(不要问我是怎么模拟的),我想检查直方图是否匹配。所以最好的方法是通过 qqplot 但是 statsmodels 库不允许不同大小的样本。 最佳答案 构建 qq 图
我是一名优秀的程序员,十分优秀!