Google上其他操作系统的SDK或REST API?

如果不使用API​​.ai或NodeJS SDK,是否有可能或在路线图中开发自己的Google行动?

这已经是可能的了:我使用Vert.x构建了一个非常小的Java对话操作示例: https : //github.com/Ithildir/actions-on-google-vertx-sample

在这里您可以找到有关HTTP协议的更多信息: https : //developers.google.com/actions/reference/conversation

您可以使用JAX-RS在Google兼容的webhook上实施Actions。 例如,这个Java库模拟了Google记录的HTTP协议: https : //github.com/l0s/google-actions-conversation-api 。 请参阅文档了解更多详情。 一个示例实现如下所示:

@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序列化程序/反序列化程序忽略未知属性,并在序列化过程中排除空字段或空字段。

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

现在Kotlin / Java还有另外一个选择。 这是官方Actions on Google SDK的开源端口。 官方的node.js SDK支持API.ai和Actions SDK(直接集成),而Kotlin / Java也支持。 它正在开发中,但接近100%完成,更多的文档/例子将会出现。 https://github.com/TicketmasterMobileStudio/actions-on-google-kotlin