2017-06-25 16 views
0

私はfbチャットボットを開発しています。特定の目的のために、Webhookが起動され、Python経由で処理されます。 PythonアプリはHerokuクラウドでホストされています。私は典型的な問題に直面しています。ウェブフックが発砲されたときはいつでも、チャットからの次のクエリがトリガされるまで無限ループで解雇され続けます。Facebook Chatbotから複数回呼び出されたPython webhook - Api.ai

#!/usr/bin/env python 

from __future__ import print_function 
from future import standard_library 
standard_library.install_aliases() 
import urllib.request, urllib.parse, urllib.error 
import json 
import os 
import psycopg2 
import urlparse 

from flask import Flask 
from flask import request, render_template 
from flask import make_response 


# Flask should start in global layout 
context = Flask(__name__) 

# Webhook requests are coming to this method 
@context.route('/webhook', methods=['POST']) 
def webhook(): 
    reqContext = request.get_json(silent=True, force=True) 
    if reqContext.get("result").get("action") == "input.welcome": 
     return welcome() 
    elif reqContext.get("result").get("action") == "yahooWeatherForecast": 
     return weatherhook(reqContext) 
    elif reqContext.get("result").get("action") == "GoogleSearch": 
     return searchhook() 
    else: 
     print("Good Bye") 

私は3つのインテントのみのWebhookを有効にしました。 api.aiの他のインテントでは、WebhookまたはWebhookのスロットフィリングが有効になっていません。

誰でも助けてくれますか?このような場合に探すために

答えて

0

2つのこと:

  1. 私たちは、メッセージ配信応答がFBのサブスクリプションで有効になっているかどうかを確認する必要があり、応答
  2. を終了するにはFacebookを利用して、応答200を送信する必要があります。有効にすると、fbは配信応答も送信します。これはwebhookで捕捉する必要があります。
関連する問題