@kkamiikadzee

Как сделать телеграмм бота, который когда его отметили дает выбор какое отправить аудио?

как сделать бота, когда его отметили он дает на выбор какое аудио отправить.
Боты типо: https://t.me/gachimuchi_voice_bot
Библиотека pytelegrambotapi
  • Вопрос задан
  • 110 просмотров
Пригласить эксперта
Ответы на вопрос 1
shurshur
@shurshur
Сисадмин, просто сисадмин...
Это не "отметили", а так называемый inline mode. Нужно включить этот режим в настройках бота, а затем в коде реализовать обработчик inline_handler. Примерно так:

@bot.inline_handler(lambda query: len(query.query) > 0)
def query_text(inline_query):
    keyboard = []
    for code in ['foo', 'bar']:
        keyboard.append(telebot.types.InlineQueryResultArticle(code, f'>>> {code} <<<', telebot.types.InputTextMessageContent(f'<<<{code}>>>')))
    bot.answer_inline_query(inline_query.id, keyboard, is_personal=True)


Важно понимать, что inline mode - это не полноценное средство интеракции с ботом, а помощник в написании сообщения от пользователя. В частности, результаты inline query кэшируются на серверах Телеграма, так что если поступит такой же запрос, что и минуту назад, то Телеграм даже не сделает запроса к боту. Также в этом режиме не раскрывается информация о чате, в который будет отправлено сообщение, и даже больше того, пользователь может в итоге отказаться от отправки сообщения вообще, но бот об этом не узнает.

ЗЫ
Мне в одном боте пришлось из-за этого реализовать концепцию inline policy: в зависимости от настроек чата бот может игнорировать или даже удалять сообщения, оставленные пользователями с помощью inline mode ботов из чёрного списка.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы