我管理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
的维护人员