部署kik bot到heroku不工作

时间:2016-08-17 21:39:29

标签: python heroku flask bots kik

我一直试图将我的kik api部署到heroku,但它还没有工作。我已经设置了我的proc文件,我的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

这是我的procfile

web: python bot.py

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

Heroku local app

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

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