【问题标题】:Getting response from API - DialogFlow Chatbot从 API 获取响应 - DialogFlow 聊天机器人
【发布时间】:2019-09-25 18:38:10
【问题描述】:

我正在使用 DialogFlow 创建一个聊天机器人。在这里,我试图从我的开发团队(使用 python)创建的 API 中获取响应。他们提供了 API URL 并请求根据用户查询从中获取数据。我在内联编辑器中创建了一个函数并粘贴了给定的 API URL。 下面是他们创建的 API 格式,

{
“data”: [{
“pincode”: “”,
“location_formatted_address”: “”,
“user_id”: “”,
“department_name”: “Education”,
“locality”: “”,
“status”: “Select_Status”
}]
}

在这里,当用户给出部门名称时,它必须以该特定部门的位置来响应用户。

在内联编辑器中,我应用了以下逻辑来获取位置,

function getDatafromApI(agent){
  const name = agent.parameters.name;
  return getAPIData().then(res => {
     res.data.map(issues => {
        if(issues.department_name === name)
        agent.add(`${name}. ${issues.locality}`);

intentMap.set('Fetch API', APIData);

在上面的代码中,“name”是intent部分给出的参数。 但是,我没有得到任何回应。有什么帮助吗?

【问题讨论】:

    标签: dialogflow-es-fulfillment


    【解决方案1】:

    内联编辑器使用 Firebase。您必须升级到 Firebase“Blaze”或“Flame”计划,因为“Spark”(免费)计划不允许外部 api 调用。

    但是,如果您已经升级了 Firebase 计划并且仍然看到此错误,您可以通过单击 Dialogflow 实现窗口底部的“查看执行日志”链接来查看执行日志。

    【讨论】:

    • 感谢您的回复。我已经升级了 Firebase 计划。我尝试将 DialogFlow 与 Google 工作表连接起来,它通过从中获取数据而运行良好。当我与外部 API 集成时,没有得到任何响应。即使 API 可以公开访问,我也没有得到任何回应。当用户从单个 API 提供部门名称时,是否可以获取位置?
    • 告诉我日志的内容,您可以通过单击 Dialogflow 执行窗口底部的“查看执行日志”链接查看执行日志。
    • 错误:在结算 (/srv/node_modules/axios/lib/ core/settle.js:17:12) 在 IncomingMessage.handleStreamEnd (/srv/node_modules/axios/lib/adapters/http.js:237:11) 在 emitNone (events.js:111:20) 在 IncomingMessage.emit ( events.js:208:7) 在 endReadableNT (_stream_readable.js:1064:12) 在 _combinedTickCallback (internal/process/next_tick.js:139:11) 在 process._tickDomainCallback (internal/process/next_tick.js:219:9 )
    • 未处理的拒绝
    • 警告,基于 GCLOUD_PROJECT 估计 Firebase 配置。初始化 firebase-admin 可能会失败
    猜你喜欢
    • 2018-07-07
    • 2020-09-26
    • 1970-01-01
    • 1970-01-01
    • 2019-10-28
    • 2019-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多