как отправить сообщение при запуске приватного чата с python telegram bot - PullRequest
0 голосов
/ 31 марта 2020

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

вот мой код

def start_chat(update: Update, context: CallbackContext):
    context.bot.send_message(
        chat_id=update.effective_chat.id,
        text=f"Welcome, nice to meet you{os.linesep}"
             f"/what would you like me to do?{os.linesep}"
    )
bot = Updater(token=token, use_context=True)
bot.dispatcher.add_handler(MessageHandler(Filters.text, start_chat))

есть ли фильтр или обработчик, который может предупредить меня только в первом сообщении в приватном чате?

1 Ответ

0 голосов
/ 31 марта 2020

Когда пользователь запускает бота, ему будет отправлена ​​команда /start. Поэтому вы должны добавить CommandHandler вместо MessageHandler.

Вот ваш модифицированный код:

def start_chat(update: Update, context: CallbackContext):
    context.bot.send_message(
        chat_id=update.effective_chat.id,
        text=f"Welcome, nice to meet you{os.linesep}"
             f"/what would you like me to do?{os.linesep}"
    )
bot = Updater(token=token, use_context=True)
bot.dispatcher.add_handler(CommandHandler('start', start_chat))

Или вы также можете использовать MessageHandler с Filters.regex('^/start$') для захватить команду /start.

bot.dispatcher.add_handler(MessageHandler(Filters.regex('^/start$'), start_chat))
...