Я пытаюсь реализовать скрипт python, который установит webhook с помощью метода телеграммы бота api setWebhook
. Как поясняется here после создания самозаверяющего сертификата мы можем добиться с этой командой завитка:Как превратить команду curl в эквивалент python?
curl -F "url=https://<YOURDOMAIN.EXAMPLE>/<WEBHOOKLOCATION>" \
-F "[email protected]<YOURCERTIFICATE>.pem" https://api.telegram.org/bot<YOURTOKEN>/setWebhook
Вызов этим локон команда установить webhook без каких-либо проблем и я получаю обновление через него.
Но теперь Я пытаюсь достичь этого с помощью скрипта python, поэтому я мог бы просто вызвать его с помощью некоторых аргументов командной строки, чтобы он установил для меня webhook, узнал об этом или удалил его. То, что я написал до сих пор это:
files = {
'file': ('certificate', open(configuration.CERTFILE, 'rb'))
}
headers = {'Content-Type': 'multipart/form-data'}
data = {
'url': configuration.WEBHOOK_URL,
}
url = configuration.API % 'setWebhook'
rp = requests.post(url, headers=headers, data=data, files=files)
print('result of setWebhook: ', rp.status_code)
Код статуса ответ является400 Bad Request
. Я думаю, что я посылаю запрос не так.
Любые идеи о что не так с моим requests
запрос на телеграмму бота api?
'curl -h' говорит, что' -F' * Указывает HTTP-данные по multipart POST * и 'url' не является файлом. В любом случае я пробовал код, который вы предоставили, но без каких-либо успехов. – sehrob