首页 > 解决方案 > 使用 python-telegram-bot API,如何创建测试,我使用 fake-user-bots 在群聊中输入命令并让我的机器人实例响应

问题描述

我正在使用python-telegram-bot为 Telegram 群聊中键入的机器人命令创建测试。我的第一次尝试是创建将成为用户的机器人,并使用user.send_message("/start")这样我的telegram.Bot实例来处理逻辑。但是,该机器人似乎仅用于响应人类。通读文档,我看到有telegram.Chattelegram.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 命令?

标签: telegrampython-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。


推荐阅读