Отправить клавиатуру Telegram с Python - PullRequest
0 голосов
/ 03 сентября 2018

Я пытаюсь отправить клавиатуру Telegram с ботом на мою учетную запись. Я следовал за TelegramAPI документацией, но я не могу. Я использую Python 2.7.

Пока что я попробовал вот что:

import requests

bot_token = 'xxxxxxxxxxxxxxxxxxxxxxxx'
chat_id = 'xxxxxxxxxxxx'
text = "Choose:"
reply_markup={"keyboard":[["Yes","No"],["Maybe"],["1","2","3"]],"one_time_keyboard":True}
data = {'chat_id': chat_id, 'text': text, 'reply_markup': reply_markup}
url ="https://api.telegram.org/bot" + bot_token + "/sendMessage"

r = requests.get(url, data = data)
results = r.json()
print (results)

Python не падает, но я получаю ответ об ошибке от Telegram API, и я не знаю почему:

{u'error_code ': 400, u'ok': False, u'description ': u "Неверный запрос: невозможно проанализировать объект JSON разметки ответа клавиатуры "}

Любая идея или предложение высоко ценится.

Спасибо, Андер.

1 Ответ

0 голосов
/ 04 сентября 2018

используя библиотеку json, вы можете сбросить объект клавиатуры:

import requests, json

bot_token = 'xxxxxxxxxxxxxxxxxxxxxxxx'
chat_id = 'xxxxxxxxxxxx'
text = "Choose:"
reply_markup={"keyboard":[["Yes","No"],["Maybe"],["1","2","3"]],"one_time_keyboard":True}
data = {'chat_id': chat_id, 'text': text, 'reply_markup': json.dumps(reply_markup)}
url ="https://api.telegram.org/bot" + bot_token + "/sendMessage"

r = requests.get(url, data = data)
results = r.json()
print (results)
...