чтобы кнопка появилась, нужно создать такую клавиатуру
Да
Собственно, у метода
sendMessage есть поле
reply_markup
, которое может в себе содержать
InlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReply
Возьмем ReplyKeyboardMarkup, она создает такую клавиатуру.
ReplyKeyboardMarkup состоит из нескольких необязательных полей, описывающих поведение и расположение кнопок и одного обязательного поля
keyboard
, которое является
Array of Array of KeyboardButton
Ну а
KeyboardButton уже содержит в себе поле
text
, определяющее, как ни странно, текст, и другие, которые меняют поведение кнопки.
import requests
CHAT_ID = 123
TOKEN = 123
keyboard = {'keyboard': [[{'text': 'Button 1'}, {'text': 'Button 2', 'request_contact': True}]]}
payload = {'chat_id': CHAT_ID , 'text': 'Hello, world!', 'reply_markup': keyboard}
requests.post(f'https://api.telegram.org/bot{TOKEN}/sendMessage', json=payload)