Webhook使用NodeJS Client的响应

时间:2019-02-02 20:14:17

标签: dialogflow actions-on-google

我建立了一个自定义的webhook作为Dialogflow目的的实现端点。它正常工作时,我用生JSON回应,即:- Disable php-xdebug on PHP 7.3.0* - Disable OPCache (opcache.enable=0 on php.ini, then restart PHP services) - Set opcache.optimization_level=0x7FFFBBFF , 但似乎无法使用“ Google行动”库工作。

他们网站上的代码暗示这应该有效:

{'fullfillmentText':'hi'}

但事实并非如此。 Google Home只是说我的应用程序没有响应。就目前情况而言,我的函数(使用Fn Project)必须返回JSON,并且如果我返回JSON作为响应,则它并不期望失败。也许有人可以阐明一些想法?

编辑1: 我正在使用Fn Project开源功能作为服务使用自定义Webhook。在此说明我的目的是演示如何使用项目,因此我不想使用嵌入式编辑器或Google Cloud Functions或firebase或任何其他默认选项。

这是其余的代码

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

1 个答案:

答案 0 :(得分:1)

尽管您正在创建XOR对象,该对象将进行Intent处理程序的处理,并通过app向其注册处理程序,但您并没有对"export"进行任何操作因此app.intent()的方法是在触发Webhook时调用的。调用时,它将获取请求的正文,并将格式化响应的JSON。

例如,如果您使用的是Firebase函数,则可以将app连接到要通过这些函数处理的对象上,例如

app

但是你不是。您正在使用其他框架。

该库附带了一些frameworks,它们是开箱即用的,但Fn P​​roject并不是其中之一。从理论上讲,您可以创建自己的Framework object来为您完成此操作(this article的“框架”部分对此进行了简短的讨论,但没有详细介绍如何执行此操作。) / p>

您推测,最简单的选择就是read the JSON request and generate the JSON response而不使用Google动作库。或者,您可以查看multivocal之类的库,以了解利用其多框架支持是否更容易。