Веб-перехватчик Python несколько раз вызывается из чат-бота Facebook — Api.ai

Я разрабатываю чат-бот fb, в котором для конкретных целей запускаются веб-хуки и обрабатываются через python. Приложение Python размещено в облаке Heroku. Я сталкиваюсь с типичной проблемой: всякий раз, когда запускается какой-либо веб-перехватчик, он продолжает запускаться в бесконечном цикле до тех пор, пока не будет запущен следующий запрос из чата.

#!/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 намерений. Для других намерений в api.ai не включено выполнение (заполнение слота веб-перехватчика или веб-перехватчика).

Может ли кто-нибудь помочь мне в этом.


person Swap    schedule 25.06.2017    source источник


Ответы (1)


Две вещи, на которые следует обратить внимание в таком случае:

  1. Нам нужно отправить ответ 200 в facebook, чтобы закончить ответ
  2. Нужно проверить, включен ли ответ на доставку сообщения в подписке fb или нет. Если он включен, fb также отправит ответ о доставке, который должен быть перехвачен вебхуком.
person Sajat Shrestha    schedule 18.09.2017