【问题标题】:Python webhook called multiple times from Facebook Chatbot - Api.ai从 Facebook Chatbot 多次调用 Python webhook - Api.ai
【发布时间】:2017-06-25 00:39:05
【问题描述】:

我正在开发一个 fb 聊天机器人,针对特定意图,webhook 被触发并通过 python 处理。 python 应用程序托管在 Heroku 云中。我面临一个典型的问题,每当触发任何 webhook 时,它都会在无限循环中继续触发,直到触发来自聊天的下一个查询。

#!/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 插槽填充)。

谁能帮帮我。

【问题讨论】:

    标签: python-2.7 dialogflow-es facebook-webhooks


    【解决方案1】:

    在这种情况下要寻找两件事:

    1. 我们需要向 facebook 发送响应 200 以结束响应
    2. 需要检查是否在fb订阅上启用了消息传递响应。如果启用,fb 也会发送传递响应,这应该被 webhook 捕获。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多