我一直试图将我的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。当我在本地运行应用程序时,它似乎运行得很好。
非常感谢任何帮助。
答案 0 :(得分:1)
我想出了这个问题。我为我的heroku部署设置了错误的环境变量,所以它抛出了一个keyerror,因为它找不到密钥并停止了进程。