2016-08-17 96 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部署設置了錯誤的環境變量,因此它拋出了一個鍵盤錯誤,因爲它找不到密鑰並停止了該進程。