我有一個燒瓶應用程序部署到Heroku,並希望從Chatfuel(bot構建平臺)接收文本併發迴文本作爲回報。連接API並通過Flask應用程序發回消息
現在,我所做的就是使用我的heroku應用程序作爲Web鉤子,以便Chatfuel可以對我的API進行簡單的GET或POST查詢。問題是我沒有使用Flask或API的經驗,所以我不確定我的應用程序可以如何接收信息(以json格式)並將其發送回chatfuel。
這是我寫到目前爲止:
import os
import sys
import json
import requests
from flask import Flask, jsonify, render_template, request
app = Flask(__name__)
@app.route('/', methods=['GET'])
def verify():
# when the endpoint is registered as a webhook, it must echo back
# the 'hub.challenge' value it receives in the query arguments
if request.args.get("hub.mode") == "subscribe" and request.args.get("hub.challenge"):
if not request.args.get("hub.verify_token") == os.environ["VERIFY_TOKEN"]:
return "Verification token mismatch", 403
return request.args["hub.challenge"], 200
return "Hello world", 200
@app.route("/json", methods=['GET','POST'])
def json():
url = "chatfuel_api"
data = json.load(urllib2.urlopen(url))
if request.json:
mydata = request.json
return "Thanks",200
else:
return "no json received"
@app.route('/hello', methods = ['GET','POST'])
def api_echo():
if request.method == 'GET':
return "ECHO: GET\n",200
if __name__ == '__main__':
app.run(debug=True)
的verify()
功能的作品,因爲我看到一個「世界,你好」消息,如果我在本地運行的應用程序。但是,json()
和api_echo()
都不起作用,並且當我的服務器收到來自chatfuel的獲取或發佈請求時,它將返回404錯誤。
正如你所看到的,我真的很困惑,你的幫助將是非常寶貴的。
感謝
請發送日誌或回溯。 – stamaimer
感謝您的評論。我不確定如何在heroku上獲得這個。是通過運行'heroku logs -t'嗎? – sandrus
這就是我運行heroku時所看到的(我已經替換了真正的主機,請求和fwd值,'up'是我感興趣的屬性的名稱):'at = info method = GET path =「/ webhook ?up = Hh&up = Hh「host = x.herokuapp.com request_id = y fwd =」z「dyno = web.1 connect = 0ms service = 8ms status = 404 bytes = 386 protocol = https' – sandrus