Как настроить веб-перехватчик python-telegram-bot на Heroku?

Я использую оболочку python-telegram-bot, и я пытался разместить на Heroku адаптация уже существующего примера, предназначенного для Google App Engine, а также руководство по веб-перехватчику в вики, но безрезультатно.

Кажется, я не могу заставить работать веб-перехватчик и чтобы бот правильно отображал сообщения.

Кажется, я не могу понять, что не так, поэтому я буду очень признателен за любую помощь, которая укажет мне правильное направление!

Моя попытка подробно описана ниже.

import telegram
from os import environ
from telegram.ext import Updater
from flask import Flask, request
from credentials import TOKEN, APP_URL

app = Flask(__name__)

global bot
bot = telegram.Bot(token=TOKEN)


@app.route('/' + TOKEN, methods=['POST'])
def webhook_handler():
    if request.method == "POST":
        # retrieve the message in JSON and then transform it to Telegram object
        update = telegram.Update.de_json(request.get_json(force=True))

        chat_id = update.message.chat.id

        # Telegram understands UTF-8, so encode text for unicode compatibility
        text = update.message.text.encode('utf-8')

        # repeat the same message back (echo)
        bot.sendMessage(chat_id=chat_id, text=text)

    return 'ok'


if __name__ == "__main__":
    PORT = int(environ.get('PORT', '5000'))
    updater = Updater(TOKEN)

    # add handlers
    updater.start_webhook(listen="0.0.0.0", port=PORT, url_path=TOKEN)
    updater.bot.setWebhook(APP_URL + TOKEN)
    updater.idle()
    app.run(environ.get('PORT'))

person Shinlos    schedule 16.01.2017    source источник


Ответы (1)


в вики вы найдете самый простой пример.

https://github.com/python-telegram-bot/python-telegram-bot/wiki/Webhooks#heroku.

Короче, не пытайтесь использовать колбу. Используйте встроенный веб-сервер.

person Eldin    schedule 16.01.2017