问题描述
我向 Heroku 部署了一个 Python Telegram 机器人,但机器人没有响应。
在终端中,输入“heroku logs -t”表示构建成功,但是当我向 Telegram bot 发送 /start 之类的命令时,没有显示任何其他内容。
我不确定是我的 webhooks 还是我在 bot 中实现的功能?对于 webhooks 部分,我基本上复制粘贴了 getMessage、webhook 和 if name == main 部分来自 https://github.com/eternnoir/pyTelegramBotAPI/blob/888c7a6b0d97c376947ee7b525d4b70583acc3fc/examples/webhook_examples/webhook_flask_heroku_echo.py
还是我的命令处理程序有问题?这就是我的代码的样子,减去在 main 中调用的函数。 (heroku url 部分被删除,所以我的heroku url 不会被放在这里,但它在原始代码中是正确的)
def main() -> None:
updater = Updater(TOKEN)
updater.dispatcher.add_handler(CommandHandler('start',start))
updater.dispatcher.add_handler(CallbackQueryHandler(button))
updater.dispatcher.add_handler(CommandHandler('help',help_command))
updater.dispatcher.add_handler(CommandHandler('test',test_command))
@server.route('/' + TOKEN,methods=['POST'])
def getMessage():
json_string = request.get_data().decode('utf-8')
update = telebot.types.Update.de_json(json_string)
bot.process_new_updates([update])
return "!",200
@server.route("/")
def webhook():
bot.remove_webhook()
bot.set_webhook(url="heroku url" + TOKEN)
return "!",200
if __name__ == '__main__':
server.run(host="0.0.0.0",port=int(os.environ.get('PORT',5000)))
main()
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)