Создание пользовательских клавиатур в боте telegram с использованием чистого API - PullRequest
0 голосов
/ 24 марта 2020

Я пытаюсь создать бота для телеграммы, используя только API, а не внешние пакеты. Я закончил создание базовых c функций, и мой бот может отправлять текстовые сообщения.

Я просто хочу знать, как использовать ReplyKeyboardMarkup. в качестве упомянутой документации я должен использовать некоторые параметры, но я не знаю, как их использовать или мне следует отправлять их в запросе.

Telegram doc. about ReplyKeyboardMarkup

Может кто-нибудь сказать мне, что именно я должен сделать, чтобы использовать этот API-интерфейс в моем коде, или использовать внешние пакеты, такие как telebot.

1 Ответ

1 голос
/ 24 марта 2020

Небольшой пример с inlinekeyboardbutton отправка через параметр reply_markup из метода sendMessage.

Как отмечено в документации, этот подход является тем же обязательным для replykeyboardmarkup

import json
import requests

# Create sendMessage url
bottoken = "94924.............."
url = "https://api.telegram.org/bot" + bottoken + "/sendMessage"

# Create keyboard, convert dic to json with json.dumps
kb=json.dumps(
    { "inline_keyboard":
        [
            [
                { "text": "Yes", "callback_data": "x" },
                { "text": "No", "callback_data": "x" }
            ]
        ]
    }
)

# Create data dict
data = {
    'text': (None, 'Hi!'),
    'chat_id': (None, 12345678),
    'parse_mode': (None, 'Markdown'),
    'reply_markup': (None, kb )
}

# Send
res=requests.post(url=url, headers={}, files=data)
print(res.text.encode('utf8'))

enter image description here

...