使用python电报机器人创建欢迎机器人



我管理telegram组已经有一段时间了,使用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">

所以我想;成员加入该组";弹出窗口不被视为消息。但我不知道如何提取该事件或使用哪个处理程序。如有任何帮助,我们将不胜感激!非常感谢。

正如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,你可以从ChatMemberUpdated.chat中获得chat_id。事实上,您仍然可以使用PTB快捷方式,例如update.effective_chat.send_message

请查看的文档

  • ChatMemberUpdated(官方和PTB(
  • Update.effective_chat
  • Chat.send_message

以及PTB提供的CCD_ 15示例。


免责声明:我目前是python-telegram-bot的维护人员

最新更新