【发布时间】:2016-12-21 21:14:24
【问题描述】:
我正在尝试开发一个kik 机器人。我用NGROK将我的localhost隧道隧道隧道到NGROK服务器。但是,每当我运行我的 python 程序并启动 ngrok 服务器并在我的手机上向机器人发送消息时,它返回的只是 404 错误。这是我的python代码
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.get('BOT_USERNAME')
BOT_API_KEY = os.environ.get('BOT_API_KEY')
kik = KikApi(BOT_USERNAME, BOT_API_KEY)
kik.set_configuration(Configuration(webhook='my_webhook'))
@app.route('/incoming', 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__":
app.run(port=8080, debug=True)
基本上,当我运行这个文件时,ngrok和localhost告诉我“404找不到”。我按照here 的指示进行了 POST 以设置我的机器人配置。当我检查Webhook的Kik Bot时,它会显示NGROK URL。我还需要做些什么才能以普通用户的身份向机器人发送消息吗?我知道 kik 使用“X-Kik-Username”进行身份验证,所以这与它有关吗?
【问题讨论】:
-
,您如何尝试访问它? span>
-
@ lennard我只是在手机上留言 span>
-
您是否可以显示您的收到错误消息? span>
-
@lennard 当然,我添加了 ngrok 在我向手机上的机器人发送消息时给我的错误消息
-
好的,当你的路由是
/incoming时,看起来 ngrok 正在向/发送 POST。尝试将其更改为匹配。
标签: python flask http-status-code-404 bots ngrok