使用客户端的NodeJS从网络挂接响应

问题描述 投票:1回答:1

我建立了一个自定义的网络挂接作为履行端点的Dialogflow意图。它正常工作时,我用生JSON,即回应:{'fullfillmentText':'hi'},但似乎并没有使用“的行动上,谷歌”图书馆管理员的工作。

从他们的网站的代码意味着这应该工作:

app.intent('myintent', (conv) => {
    conv.close('See you later!');
});

但事实并非如此。谷歌主页只是说我的应用程序没有响应。这可能是因为它代表我的功能(使用FN项目)必须返回JSON,如果我返回JSON作为响应,它是没有预料到失败。也许有人可以提供一些线索?

编辑1:我使用一个自定义的网络挂接使用Fn Project开源作为一项服务。演示如何使用该项目是我在这里的目的,所以我不希望使用在线编辑器或谷歌的云功能或火力或任何其他默认选项。

下面的代码的其余部分

const fdk = require('@fnproject/fdk');
const request = require('request');

const dialogflow = require('actions-on-google');
const app = dialogflow({
  debug: true,
});

fdk.handle(function (input) {
  app.intent('myintent', (conv) => {
    conv.ask('I could not understand. Can you say that again?');
  });

  return {'fulfillmentText': 'response from webhook'}
});
dialogflow actions-on-google
1个回答
1
投票

虽然您正在创建的app对象,这是否意图处理程序处理和这样的,并通过app.intent()用它注册一个处理程序,你没有做任何事情来"export"它使网络挂接被触发时会调用app的方法。在调用时,它得到的请求的主体,并格式化该响应的JSON。

如果,例如,您使用火力地堡功能,您将连接app通过功能与类似处理

exports.fulfillment = functions.https.onRequest(app);

但你不是。您使用的是不同的框架。

该库附带了一些frameworks的受支持开箱即用,但是可以使用Fn项目是不是其中之一。从理论上讲,你可以创建自己的Framework object它会为你做这个(this article的“框架”一节讨论它简单地说,但不进入有关如何做到这一点的详细信息)。

正如你猜测,这可能是最简单的你只是read the JSON request and generate the JSON response自己不使用的操作上,谷歌图书馆。或者你也可以寻找到一个库,如multivocal,看它是否会更容易利用其多框架的支持。

© www.soinside.com 2019 - 2024. All rights reserved.