首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Facebook Chatbot - Api.ai多次调用Python webhook

从Facebook Chatbot - Api.ai多次调用Python webhook
EN

Stack Overflow用户
提问于 2017-06-25 08:39:05
回答 1查看 336关注 0票数 0

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

代码语言:javascript
复制
#!/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插槽填充)。

有人能在这方面帮我吗。

EN

回答 1

Stack Overflow用户

发布于 2017-09-18 16:45:31

在这种情况下需要注意两件事:

  1. 我们需要向facebook发送响应200以结束响应
  2. 需要检查fb订阅上是否启用了消息传递响应。如果启用它,fb也将发送传递响应,这应该在webhook上捕获。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44742176

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档