使用 python-telegram-bot 创建欢迎机器人

时间:2021-06-14 22:02:19

标签: python python-3.x telegram python-telegram-bot

我一直在主持一个电报组,我在使用 python-telegram-bot 包时没有遇到任何问题。我真的很喜欢它。但是,我似乎无法在新用户加入时收到有效的“欢迎消息”。

现在,我已经尝试像使用命令和消息处理程序一样构建函数:

def welcome(update,context):
    #name = from_user.username
    #update.message.reply_text("""Welcome blah blah blah to the group!""") 

然后将其称为我的主要功能,如下所示:

dp = updater.dispatcher
dp.add_handler(ChatMemberHandler(welcome, ChatMemberHandler.CHAT_MEMBER))
updater.start_polling(allowed_updates=Update.ALL_TYPES)
updater.idle()

但我收到一个错误:AttributeError: 'NoneType' 对象没有属性 'reply_text'

所以我猜“成员加入了群组”弹出窗口不被视为消息。但我不知道如何提取该事件​​或使用哪个处理程序。任何帮助将不胜感激!谢谢!

1 个答案:

答案 0 :(得分:1)

正如thiny 已经指出的那样,聊天成员更新具有如此关联的消息:update.message 将是None,而update.chat_member 将是ChatMemberUpdated 的一个实例。请注意,Message.reply_text 只是 Bot.send_message(chat_id=message.chat.id, ...) 的快捷方式,因此只要您拥有 chat_id,您就可以使用例如context.bot.send_message - 您可以从 chat_id 获得 ChatMemberUpdated.chat。事实上,您仍然可以使用 PTB 的快捷方式,例如update.effective_chat.send_message

请查看

的文档

以及 PTB 提供的 chatmemberbot.py example


免责声明:我目前是 python-telegram-bot

的维护者