Как через бота отправить на телеграм-канал сообщение+ клавиатуру?
Не пойму, почему ошибку выдает
import telebot
token = '...'
bot = telebot.TeleBot(token)
key = telebot.types.ReplyKeyboardMarkup(True, True)
key.row('ex1')
key.row('ex2')
@bot.message_handler(commands=['start'])
def sendtochannel(message):
bot.send_message(chat_id='...' , text='lalala', reply_markup=key)
bot.polling()
Потом попробовал
def sendtochannel(message):
bot.send_message(chat_id='...' , text='lalala')
reply_markup=key
Но клавиатура появлялась в чате самого бота, а не на канале...
Что можно сделать?
Ответы (1 шт):
Автор решения: D. Violet
→ Ссылка
при попытке отправить сообщение в канал с types.ReplyKeyboardMarkup():
Bad Request: inline keyboard expected
а вот с inline клавиатурой всё работает. и в канал отправляется и callback отлавливается:
@bot.message_handler(commands=['start'])
def start(message):
key = types.InlineKeyboardMarkup()
key_1 = types.InlineKeyboardButton(text='123', callback_data='123')
key.add(key_1)
bot.send_message(-100...375, 'test text', reply_markup=key)
@bot.callback_query_handler(func=lambda call: True)
def callback_inline(call):
if call.data == '123':
print('нажали 123 в канале')