pyTelegramBotAPI/examples/webhook_examples/webhook_flask_heroku_echo.py

39 lines
927 B
Python
Raw Permalink Normal View History

2016-05-24 22:42:25 +03:00
import os
2018-02-16 18:52:37 +03:00
from flask import Flask, request
2016-05-24 22:42:25 +03:00
2018-08-17 12:54:26 +03:00
import telebot
2018-02-16 18:52:37 +03:00
TOKEN = '<api_token>'
bot = telebot.TeleBot(TOKEN)
2016-05-24 22:42:25 +03:00
server = Flask(__name__)
2018-02-16 18:52:37 +03:00
2016-05-24 22:42:25 +03:00
@bot.message_handler(commands=['start'])
def start(message):
bot.reply_to(message, 'Hello, ' + message.from_user.first_name)
2018-02-16 18:52:37 +03:00
2016-05-24 22:42:25 +03:00
@bot.message_handler(func=lambda message: True, content_types=['text'])
def echo_message(message):
bot.reply_to(message, message.text)
2018-02-16 18:52:37 +03:00
@server.route('/' + TOKEN, methods=['POST'])
2016-05-24 22:42:25 +03:00
def getMessage():
2021-03-28 11:54:46 +03:00
json_string = request.get_data().decode('utf-8')
update = telebot.types.Update.de_json(json_string)
bot.process_new_updates([update])
2016-05-24 22:42:25 +03:00
return "!", 200
2018-02-16 18:52:37 +03:00
2016-05-24 22:42:25 +03:00
@server.route("/")
def webhook():
bot.remove_webhook()
2018-02-16 18:52:37 +03:00
bot.set_webhook(url='https://your_heroku_project.com/' + TOKEN)
2016-05-24 22:42:25 +03:00
return "!", 200
2018-02-16 18:52:37 +03:00
if __name__ == "__main__":
server.run(host="0.0.0.0", port=int(os.environ.get('PORT', 5000)))