Actions on google 其他SDK或RESTAPI在Google上的操作?
不使用API.ai或NodeJS SDK在Google上开发您自己的操作是否可能,或者在路线图中是否可能?这已经是可能的:我用Java构建了一个非常小的对话操作示例: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
在这里,您可以找到有关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最完整的选项。文档/自述将很快更新,并可供使用。