【发布时间】:2020-07-15 13:20:58
【问题描述】:
我正在使用 Heroku 使用 Flask 在 python 中托管 Telegram Bot 脚本。
我已经完成了所有设置的过程,包括 git、虚拟环境(#py -m venv env + #env\Scripts\activate 和脚本......它没有给出错误但它没有运行......
我已经在环境中安装了 Flask 和 Gunicorn:
#pip install flask
#set FLASK_APP=app.py
#pip install gunicorn
项目中的文件:
.gitignore ->
env
Procfile ->
web: gunicorn deploy:app
deploy.py ->
import os
from flask import Flask, request
import telebot
TOKEN = 'My token here'
bot = telebot.TeleBot(TOKEN)
app = Flask(__name__)
@bot.message_handler(commands=['start'])
def start(message):
bot.reply_to(message, 'Hello, ' + message.from_user.first_name)
@bot.message_handler(func=lambda message: True, content_types=['text'])
def echo_message(message):
bot.reply_to(message, message.text)
@app.route('/' + TOKEN, methods=['POST'])
def getMessage():
bot.process_new_updates([telebot.types.Update.de_json(request.stream.read().decode("utf-8"))])
return "!", 200
@app.route("/")
def webhook():
bot.remove_webhook()
bot.set_webhook(url='My Url here' + TOKEN)
return "!", 200
if __name__ == "__main__":
app.run(host="0.0.0.0", port=int(os.environ.get('PORT', 5000)))
【问题讨论】:
-
您的代码在本地工作吗?我可以看到它正在运行并且没有抛出任何错误,但它的功能是否符合您的期望?我查看了 PyPI
telebot模块,它看起来还没有完成。 -
mmh.. 我尝试将代码复制并粘贴到另一个文件夹以在我的机器上运行它...由于某种原因仍然无法正常工作...不确定您是否熟悉任何好的编程电报机器人的框架? (使用 Python 或 javascript 或其他语言)@TinNguyen 我正在尝试为 Fridays For Future 建立一个系统
-
P.S.当我在 deploy.py 文件中编辑代码并插入类似于仅以 html 格式输出字符串的内容时,代码可以工作并运行,但是 python Telegram bot 本身的代码似乎没有运行(我复制了并粘贴和修改 PyTelegramBotAPI 的 API 示例中的代码
-
我以前没有使用过电报,我个人也不使用电报。那里我帮不了你。但是你到目前为止的代码是不可用的。它不会做你期望它做的事情。首先,您所依赖的项目已经严重过时,其次它永远不会工作,因为它们不会混合在一起,因为您依赖于两个相互阻塞的库。重新开始并使用此github.com/python-telegram-bot/python-telegram-bot
-
@TinNguyen 非常感谢!