LINUX.ORG.RU

не могу понять где обложалась

 , ,


1

2

Дело в том, что делаю бота на python3.5 + Flask + Webhook. Все запускается, но не работает post запросы. Выводит 404

это часть кода.

@app.route('/' + TOKEN, methods=['POST'])
def webhook():
        update = telepot.update.Update.de_json(request.get_json(force=True))
        bot.SendMessage(chat_id=update.message.chat_id, text='Hello, there')
        return 'OK'


Вебхуки самоподписанный. а это часть nginx
server {
    	listen 8443 ssl;
    	server_name тут ip сервера;

    	ssl_protocols     TLSv1 TLSv1.1 TLSv1.2;
    	ssl_certificate    путь/к/webhook_cert.pem;
    	ssl_sertificate_key  путь/к/webhook_pkey.pem;
    	root         путь/к/папке;

        location / {

        	proxy_pass http://127.0.0.1:3000;
        	proxy_http_version 1.1;
        	proxy_set_header Upgrade $http_upgrade;
        	proxy_set_header Connection $connection_upgrade;
        	proxy_set_header X-Forwarded-For $remote_addr;
        	if ($uri != "/") {
        		expires 30d;
        	}
        }
    }

★★

боты можно детектировать, а вообще 404 может быть частным случаем рандомного континуума

anonymous ()
Ответ на: комментарий от beastie

Кстати, никто не в курсе, на pythonanywhere можно хостить tornado+websocket приложение? А то сходу tornado заработал, а websocket в нем чет не очень.

pawnhearts ★★★★★ ()
Ответ на: комментарий от gssomi

Какая версия nginx? Для WS надо минимум 1.3.13.

Сделай и проверь сначала всё как по howto, а потом глянь на своё приложение — может там затык.

Вот тоже самое, но более кратко: http://nginx.org/en/docs/http/websocket.html

PS: pitfall: WS кстати таки кака — они не работают с HTTP/2

beastie ★★★★★ ()
Последнее исправление: beastie (всего исправлений: 1)
Ответ на: комментарий от beastie

а есть какой нибудь другой способ решение проблемы?

gssomi ★★ ()

А в логах нжинкса что происходит?

server_name тут ip сервера;

Тут подробнее. Что конретно прописано? По этому же хостнейму стучишься?

Hater ★★ ()
Ответ на: комментарий от gssomi

о том что url не правильный

Это не ответ. Какой пейлоад, что в хедерах?

а сейчас бот перестал запускаться выводиться

Потому что запускаешь 2 процесс, не прибив прошлый, который висит на том же порту.

Hater ★★ ()
Ответ на: комментарий от Hater

Потому что запускаешь 2 процесс, не прибив прошлый, который висит на том же порту.

я это знаю, но kill -9 PID не помогает

gssomi ★★ ()
Ответ на: комментарий от gssomi

такс, сейчас пишет «Ваше подключение не защищено». Предполагаю трабло в самоподписанном сертификате. Как можно решить?

gssomi ★★ ()
Ответ на: комментарий от gssomi

Предполагаю трабло в самоподписанном сертификате

Так точно

Как можно решить?

Разрешить использование этого сертификата в браузере, очевидно же.

А если есть цель сделать этот сайт/сервис публичным, то купить нормальный сертификат.

Hater ★★ ()
Ответ на: комментарий от gssomi

The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.

Согласно гуглу это фласковый мессадж, значит либо nginx проксирует не на тот URI, либо у тебя в вебприложении рутинг не совпадает с запросом. Смотри в логах фласка куда прилетел запрос. Если нет мессаджей - включи дебаг.

Hater ★★ ()
Ответ на: комментарий от gssomi

Да он спрашивает какие именно строки у тебя различаются в том скрипте, который работает, и в том, который не работает. Ты говоришь что раньше без веба работало, что именно менялось (только не надо говорить «прикрутила вебчасть», код покажи)?

alozovskoy ★★★★★ ()

а как работает вообще апи телеграма? Посылаешь запрос в телеграм, а апи отправляет ответ по указанному урл. Урл состоит из чего? Только название вервера, порт, токен и вебхуки?

gssomi ★★ ()
Последнее исправление: gssomi (всего исправлений: 1)
Ответ на: комментарий от gssomi

Да ладно, технической составляющей в треде уже не осталось.

ya-betmen ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.