@Yevgeni

Как вызвать функцию и передать ей chat id после нажатия на InlineKeyboardButton?

Имеется код:
def listener(messages):
    for message in messages:
        if message.content_type == 'text':
            print(str(message.chat.first_name) +
                  " [" + str(message.chat.id) + "]: " + message.text)


bot = TeleBot(TOKEN)
bot.set_update_listener(listener)


@bot.message_handler(commands=['hot_news'])
def send_hot_news(message):
    chat_id = message.chat.id
    for i in range(1):
        keyboard = types.InlineKeyboardMarkup()
        button = types.InlineKeyboardButton(
            'Получить полный текст статьи', callback_data='get_full_text')
        keyboard.add(button)
        txt = open('text.txt', 'rb').read()
        bot.send_message(
            chat_id, txt, parse_mode='HTML', reply_markup=keyboard)

@bot.callback_query_handler(func=lambda call: True)
def callbacks(call):
    if call.data == "get_full_text":
        # тут мне хотелось бы вызвать функцию отправик полного текста статьи
        # отдельным сообщением
        bot.send_message(
            chat_id, 'это не работает потому что функция не принимает chat id')


Помогите разобраться
  • Вопрос задан
  • 474 просмотра
Решения вопроса 1
@id2669099
если это про функцию callbacks, то перед bot.send_message
chat_id = call.message.chat.id
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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