telegram - 使用 python-telegram-bot API,如何创建测试,我使用 fake-user-bots 在群聊中输入命令并让我的机器人实例响应
问题描述
我正在使用python-telegram-bot
为 Telegram 群聊中键入的机器人命令创建测试。我的第一次尝试是创建将成为用户的机器人,并使用user.send_message("/start")
这样我的telegram.Bot
实例来处理逻辑。但是,该机器人似乎仅用于响应人类。通读文档,我看到有telegram.Chat
和telegram.User
。
chat = Chat(id=0, type="group")
user = User(id=123, first_name="Sam", is_bot=False)
我不知道如何连接这两个对象。我想我可以做类似的事情chat.add_user()
,user.send_message(chat_id)
但这些方法似乎都不存在。用户对象有一个send_message()
方法不接受 Chat 对象或 chat_id。如何连接 Chat 和 User 对象以便测试各种 telegram.Bot 命令?
解决方案
首先,你必须去 Telegram 并搜索官方 Bot Father 帐户。输入 /newbot 以创建您的个人机器人。
其次,请创建一个组并将您的机器人添加到其中。为了获取您创建的组的聊天/组 ID。您可以访问此链接https://api.telegram.org/bot /getUpdates 并将“”替换为您的机器人令牌。键入 /abc 并在群聊中标记您的机器人。刷新页面后,您将看到一个 json 返回。请搜索聊天 ID (-5xxxxxx)。
第三,我假设你已经在你的环境中安装了 python 电报机器人。创建python文件和代码如下:
from telegram import *
from telegram.ext import *
def sendtext(update,context):
updater.bot.sendMessage(chatid, "Hello World")
updater = Updater("your token")
chatid= yourchatID
dispatcher = updater.dispatcher
dispatcher.add_handler(CommandHandler('sendtext',sendtext))
print("Started Polling")
updater.start_polling()
updater.idle()
运行代码并在组中键入 /sendtext。你会看到helloworld。
推荐阅读
- r - 向 coord_polar 添加注释
- c# - Visual Studio 2019:无法摆脱 VC++ 2015 运行时未找到的警告
- node.js - 如何在反应应用程序中重新加载每个页面时停止 firebase re-auth()?
- oop - 为什么认为“异常与某事发生的频率有关”是错误的?
- regex - 如何在 mongo 中使用 regexp 比 where 更快地匹配数字
- rxjs - Rxjs 在第一次匹配时执行并退出 observable
- javascript - 如何在创建元素 5 秒后淡出元素?
- django - 带有 ModelChoiceFilter 过滤器的 Django 过滤器显示 {key:value}
- bash - 在while循环中打击多个条件
- php - 通过在php中添加或减去当前时间来随机化时间