如果不使用API.ai或NodeJS SDK,是否有可能或在路线图中开发自己的Google操作?Google上的操作的其他SDK或REST API?
回答
这已经是可能的:我用Java构建一个对话行动的一个非常小的例子与Vert.x:https://github.com/Ithildir/actions-on-google-vertx-sample
在这里你可以找到关于HTTP协议的详细信息:https://developers.google.com/actions/reference/conversation
请注意Google正在积极推动api.ai的发展。你可以使用任何语言来接收/生成没有api.ai的json,但它可能不会持续。 Google已经瘫痪了节点sdk,强迫你使用api.ai. –
谢谢安德烈亚斯,我会看看它。 Bela,我不喜欢很多开发者所做的图形界面,所以如果Google/api.ai不提供简单的界面,Google Actions将失败 –
可以实施操作在使用JAX-RS的Google兼容webhook上。例如,这个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串行器/解串器deserialisation过程中忽略未知的属性和序列化过程中排除空或空字段。
您不需要使用该库,但它可以让您了解如何使用servlet实现webhook。此外,这种方法(无论是否有库)不一定需要与JAX-RS一起使用。同样的技术可以应用于无服务器解决方案,例如带有Lambda的AWS API网关。
感谢Carlos,我使用了很多JAX-RS,它对于快速开发REST API。我正在寻找一个Go实现,这个respository是灵感的源泉 –
还有一个Java/Kotlin官方SDK的端口。它具有匹配的API和官方的所有功能。可在此处https://github.com/TicketmasterMobileStudio/actions-on-google-kotlin – Patrick
现在Kotlin/Java还有另一种选择。这是官方Actions on Google SDK的开源端口。官方的node.js SDK支持API.ai和Actions SDK(直接集成),而Kotlin/Java也支持。它正在开发中,但已接近100%完成,更多文档/示例即将推出。 https://github.com/TicketmasterMobileStudio/actions-on-google-kotlin
- 1. Paypal API - REST API或SDK(Java)
- 2. Google云API的其他API Key证书
- 3. Google上的操作
- 4. 用于验证参数,REST或其他的Web服务API?
- 5. Google Firebase数据库管理SDK API与REST API的性能
- 6. 多个操作-REST API
- 7. 其他REST风格的方法和操作干
- 8. Google Cloud DNS REST上的403错误Api
- 9. REST API SkypeBot建议的操作
- 10. Rest Rest Framework的其他调用
- 11. 针对文件上的多个操作的REST API
- 12. C#有没有LINQ到HTML或其他一些好的.Net HTML操作API?
- 13. 未在Google Home设备上被其他用户调用的测试操作
- 14. Google TDD或测试环境上的操作
- 15. 其他接口/设备的操作表
- 16. 如何使用Google地图或其他地图API?
- 17. 来自操作方法名称或MethodInfo或其他内容的URL,或列出操作路由
- 18. 使用Rally Rest API进行CRUD操作
- 19. 为Google Mail(以及其他软件)添加直接操作?
- 20. 从Google API获取其他信息
- 21. 基于其他操作结果的MySQL查询操作
- 22. 如何从其他操作的结果中排列操作
- 23. ASP.NET MVC:仅由其他操作调用的操作
- 24. 在REST API或.Net SDK中是否有等效的Set-AzureRmKeyVaultAccessPolicy?
- 25. facebook更改了他的REST API,如何与他们合作?
- 26. Rails上的Rest api
- 27. Struts上的Rest API
- 28. 其他API的API网关?
- 29. 在WordPress博客上插入新主题时的其他操作
- 30. 如何对字符串上的其他字符执行操作?
我已经添加了一个答案,但也会在这里发表评论 - 有一个非官方的Java/Kotlin SDK是JVM最完整的选项。文档/自述文件将很快更新,并且可以使用。 https://github.com/TicketmasterMobileStudio/actions-on-google-kotlin – Patrick