Telegram SendPoll через Python: невозможно проанализировать параметры JSON - PullRequest
0 голосов
/ 25 января 2020

Когда я пытаюсь отправить опрос в чат, я получаю следующую ошибку:

{'ok': False, 'error_code': 400, 'description': "Bad Request: can't parse options JSON object"}

Относительно https://core.telegram.org/bots/api#sendpoll "опции" должны быть массивом из строки, которые, очевидно, не работают.

Это скрипт, который я построил:

import json, requests

telegram_poll_url = 'https://api.telegram.org/botXXXX:YYYY/sendPoll'
telegram_poll_data = {'chat_id': XXXX, 'options':  ["5 Minuten", "10 Minuten"], 'question': "Wann bist hier?", 'is_anonymous': False}

response = requests.post(telegram_poll_url, telegram_poll_data).json()
print(response)

Редактировать: Это также не работает

options = ["5 Minuten", "10 Minuten"]
telegram_poll_data = {
    'chat_id': -321158590, 
    'options':  options, 
    'question': "Wann bist du im FF Haus?", 
    'is_anonymous': False
}

response = requests.post(telegram_poll_url, telegram_poll_data).json()

1 Ответ

1 голос
/ 26 января 2020

Разобрать список опций до JSON.

GET

options = ['bla', 'bla2', 'bla3']
uri = f'https://api.telegram.org/bot{_TELEGRAM_BOT_TOKEN}/sendPoll?chat_id={chat_id}&' \
      f'question={question}&options={json.dumps(options)}&type={type_}&correct_option_id={correct_option_id}' \
      f'&is_anonymous=false'
get(uri)
...