Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actions on google 其他SDK或RESTAPI在Google上的操作?_Actions On Google - Fatal编程技术网

Actions on google 其他SDK或RESTAPI在Google上的操作?

Actions on google 其他SDK或RESTAPI在Google上的操作?,actions-on-google,Actions On Google,不使用API.ai或NodeJS SDK在Google上开发您自己的操作是否可能,或者在路线图中是否可能?这已经是可能的:我用Java构建了一个非常小的对话操作示例: 在这里,您可以找到有关HTTP协议的更多信息:您可以使用JAX-RS在与Google兼容的webhook上实现操作。例如,此Java库为Google记录的HTTP协议建模:。有关更多详细信息,请参阅文档。示例实现如下所示: @Path("/webhook") @Consumes("application/json") @Produ

不使用API.ai或NodeJS SDK在Google上开发您自己的操作是否可能,或者在路线图中是否可能?

这已经是可能的:我用Java构建了一个非常小的对话操作示例:


在这里,您可以找到有关HTTP协议的更多信息:

您可以使用JAX-RS在与Google兼容的webhook上实现操作。例如,此Java库为Google记录的HTTP协议建模:。有关更多详细信息,请参阅文档。示例实现如下所示:

@Path("/webhook")
@Consumes("application/json")
@Produces("application/json")
@POST
public ConversationResponse handle(final ConversationRequest request,
        @Context final HttpServletResponse servletResponse) {
    servletResponse.setHeader("Google-Assistant-API-Version", "v1");

    final SpeechResponse speechResponse = new SpeechResponse();
    speechResponse.setTextToSpeech("Hello!");
    final FinalResponse finalResponse = new FinalResponse();
    finalResponse.setSpeechResponse(speechResponse);
    final ConversationResponse response = new ConversationResponse();
    response.setConversationToken(request.getConversationToken());
    response.setFinalResponse(finalResponse);
    return response;
}
请注意,您需要配置JSON serialiser/deserialiser,在反序列化过程中忽略未知属性,并在序列化过程中排除null或空字段


您不必使用该库,但它让您了解了如何使用servlet实现webhook。此外,这种方法(有或没有库)不一定需要与JAX-RS一起使用。同样的技术也可以应用于无服务器解决方案,例如带有Lambda的AWS API网关。

现在Kotlin/Java还有另一个选项。这是Google SDK上官方操作的开源端口。官方node.js SDK支持API.ai和Actions SDK(直接集成),Kotlin/Java SDK也支持。它正在开发中,但已接近100%完成,更多文档/示例将陆续出现。

请注意,谷歌正在大力推动api.ai的开发。在没有api.ai的情况下,您可以使用任何语言来接收/生成json,但它可能无法持续。谷歌已经破坏了NodeSDK,迫使你使用api.ai。谢谢Andreas,我会看一看。Bela,我不像许多开发人员那样喜欢图形界面,因此如果Google/api.ai不提供简单的界面,Google操作将失败。我使用了很多JAX-RS,这对快速开发REST api非常有用。我正在寻找一个Go实现,这是一个很好的灵感来源,还有一个官方SDK到Java/Kotlin的端口。它有匹配的API和官方的所有功能。在这里,我添加了一个答案,但也将在这里发表评论-有一个非官方的Java/Kotlin SDK,它是JVM最完整的选项。文档/自述将很快更新,并可供使用。