Здравствуйте, пытаюсь установить webhook для telegram-бота, для этого у меня есть task в celery.
Таск очень простой: он просто делает post request на адрес
https://api.telegram.org/bottoken/setWebhook, где в в теле запроса содержит url куда слать вебхуки. Казалось бы чего тут сложного? Запрос проходит, telegram отвечает что вебхук установлен, но ничего не шлёт, при запросе метода
https://api.telegram.org/bottoken/getWebhookInfo, telegram отвечает вот так:
{
'ok': True,
'result': {
'url': 'https://<url>/75d78ee1-835f-461b-85bc-e5a755a829d4/webhook/telegram/',
'has_custom_certificate': False,
'pending_update_count': 0,
'last_error_date': 1518608932,
'last_error_message': 'SSL error {337047686, error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed}',
'max_connections': 40
}
}
ну ок, допустим что сертификат который был получен у letsencrypt не подходит (хотя на сайте ssllabs у него класс A), но он подходит, потому что если я делаю такой же самый request, с того же самого сервера, но не в контексте таска, который выполняет воркер селери, то всё получается и telegram шлёт на этот адрес всё и никакой ругани на ssl нет!
Подскажите, чем так celery не угодил телеграму? У меня в голове просто связности нет.
Вот так я делаю request для установки webhook:
data = {
'url': 'https://<url>/75d78ee1-835f-461b-85bc-e5a755a829d4/webhook/telegram/',
}
requests.post('https://api.telegram.org/bottoken/setWebhook', json=data)
P.S.:
Вот ответ после реквеста без celery:
{
'ok': True,
'result': {
'url': 'https://<url>/75d78ee1-835f-461b-85bc-e5a755a829d4/webhook/telegram/',
'has_custom_certificate': False,
'pending_update_count': 0,
'max_connections': 40
}
}