Получение служебных сообщений в групповом чате с помощью Telegram Bot

Я пытаюсь создать бота в своей группе, чтобы отслеживать пользователей группы, которые пригласили других пользователей в группу.

Я отключил режим конфиденциальности, чтобы бот мог получать все сообщения в групповом чате. Однако похоже, что update.message получает только сообщения, предоставленные другими пользователями, но не служебные сообщения, такие как Alice has added Bob into the group

Есть ли способ получить и эти служебные сообщения?

Спасибо за помощь!


person user2158552    schedule 10.12.2017    source источник


Ответы (1)


Я полагаю, вы используете python-telegram-bot библиотеку.

Вы можете добавить обработчик со специальным фильтром для прослушивания служебных сообщений:

from telegram.ext import MessageHandler, Filters

def callback_func(bot, update):
    # here you receive a list of new members (User Objects) in a single service message
    new_members = update.message.new_chat_members
    # do your stuff here:
    for member in new_members:
        print(member.username)

def main():
    ...
    dispatcher.add_handler(MessageHandler(Filters.status_update.new_chat_members, callback_func)

Есть еще несколько типов служебных сообщений, которые ваш бот может получать с помощью модуля Filters, ознакомьтесь с ними здесь.

person jeffffc    schedule 11.12.2017