将kik bot部署到heroku不起作用

Posted

技术标签:

【中文标题】将kik bot部署到heroku不起作用【英文标题】:deploying kik bot to heroku not working 【发布时间】:2016-12-24 16:55:37 【问题描述】:

我一直在尝试将我的 kik api 部署到 heroku,但它不起作用。我已经设置了我的 procfile、我的 requirements.txt 文件、我的 runtime.txt 文件,它在我的机器上显示为运行良好。但是,当我在手机上打开 kik 应用程序并尝试向机器人发送消息时,消息不会发送,也不会回显我的消息。通过使用 ngrok 作为 webhook,我能够让机器人正常工作并回显消息。但是,当我尝试部署到 heroku 时,它根本不起作用。作为参考,kik bot是使用flask和kik api编写的,这是我的代码

from flask import Flask, request, Response
import os 
from kik import KikApi, Configuration
from kik.messages import messages_from_json, TextMessage

app = Flask(__name__)
BOT_USERNAME = os.environ['BOT_USERNAME'] 
BOT_API_KEY= os.environ['BOT_API_KEY']
kik = KikApi(BOT_USERNAME, BOT_API_KEY)
config = Configuration(webhook=os.environ['WEBHOOK'])
kik.set_configuration(config)
@app.route('/', methods=['POST'])
    def incoming():
        if not kik.verify_signature(request.headers.get('X-Kik-Signature'), request.get_data()):
            return Response(status=403) 

    messages = messages_from_json(request.json['messages'])

    for message in messages:
        if isinstance(message, TextMessage):
            kik.send_messages([
                    TextMessage(
                    to=message.from_user,
                    chat_id=message.chat_id,
                    body=message.body
                    )
            ])

    return Response(status=200)

if __name__ == '__main__':
    # Bind to PORT if defined, otherwise default to 5000.
    print('HI') 
    port = int(os.environ.get('PORT', 5000))
    app.run(host='0.0.0.0', port=port)

这是我的 requirements.txt

Flask==0.11.1
kik==1.1.0
gunicorn==19.6.0

这是我的 runtime.txt

python-2.7.12

这是我的过程文件

web: python bot.py

我将 webhook 变量设置为 heroku URL。当我在本地运行应用程序时,它似乎运行得很好。

Heroku local app

非常感谢任何帮助。

【问题讨论】:

日志是怎么说的? @lonefaft 我可以截取日志,heroku log。看起来一切都很好。我只是希望有一种方法可以对其进行调试,或者看看为什么机器人在本地没有响应。 这些只是部署的日志,在服务器上运行时呢? @lonewaft [Local server log] 这就是我在本地运行它时所显示的全部内容,即使我已经通过在手机上向机器人发送消息来进行 POST。 【参考方案1】:

我发现了这个问题。我为我的 heroku 部署设置了错误的环境变量,所以它抛出了一个 keyerror,因为它找不到密钥并停止了进程。

【讨论】:

以上是关于将kik bot部署到heroku不起作用的主要内容,如果未能解决你的问题,请参考以下文章

将 Gatsby 部署到 Heroku... .env 变量不起作用

将应用程序部署到 Heroku,ENV 变量不起作用

部署到heroku后actioncable不起作用

部署到 Heroku 时 CSS 不起作用 [重复]

部署在heroku上的Django网站不起作用

Vue.js Heroku 部署不起作用