2016-08-17 123 views
0

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

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

任何帮助是极大的赞赏。

+0

日志说什么? – lonewaft

+0

@lonewaft我可以截图日志,[heroku日志](http://i67.tinypic.com/be81z9.png)。看起来一切都很好。我只是希望有一种方法来调试它,或者看看为什么机器人本地不响应。 – Bob

+0

这些只是部署的日志,当它在服务器上运行时呢? – lonewaft

回答

0

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