Обращение к функции с аргументом message (pyTelegramBotAPI)
День добрый. Пишу телеграм бота, тема такая: я создал инлайн кнопку 'Получать рассылку погоды' которая прикрепляется к сообщению и при нажатии кнопки, бот совершает, скажем так, действие. Я создал условие (в декораторе bot.callback_query_handler) при котором происходит обращение к функции (sending_forecast(message)), то есть к действию, если нажата кнопка. Проблема в том, что эта самая функция имеет аргумент message, которому, при обращении, нужно задать параметр, а какой параметр, я не знаю. Много чего писал туда - возвращается ошибка: объект не имеет атрибута 'chat'
@bot.message_handler(commands=['info', 'start'])
def welcome(message):
if message.text == '/start':
#создание инлайн кнопки
inline_mailing_forecast = telebot.types.InlineKeyboardMarkup()
inline_mailing_button = telebot.types.InlineKeyboardButton(text='Получать рассылку погоды', callback_data='subscribe_weather')
inline_mailing_forecast.add(inline_mailing_button)
bot.send_message(message.chat.id, "Привет, я бот, призванный облегчить наблюдение за погодой������. Напиши мне свой город и я расскажу, всё что знаю о нём))", reply_markup=inline_mailing_forecast)
#обратный вызов инлайн кнопки
@bot.callback_query_handler(func = lambda call: True)
if call.data == 'subscribe_weather':
sending_forecast(message = )#какой параметр аргументу нужно задать?
@bot.message_handler(content_types=['text'])
def sending_forecast(message):
bot.send_message(message.chat.id, 'Какое-то действие')
Ответы (1 шт):
Автор решения: Violet
→ Ссылка
т.к. вы используете callback_query_handler объект message будет содержаться в call:
@bot.callback_query_handler(func=lambda call: True)
def callback_inline(call):
if call.data == 'subscribe_weather':
sending_forecast(call.message)
def sending_forecast(message):
bot.send_message(message.chat.id, 'sending_forecast Какое-то действие')