【问题标题】:Other SDK or REST API for actions on Google?其他用于 Google 操作的 SDK 或 REST API?
【发布时间】:2017-08-08 02:09:52
【问题描述】:

是否有可能或在路线图中在不使用 API.ai 或 NodeJS SDK 的情况下在 Google 上开发自己的 Action?

【问题讨论】:

标签: actions-on-google


【解决方案1】:

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

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

【讨论】:

  • 请注意,Google 正在积极推动 api.ai 的开发。您可以使用任何语言在没有 api.ai 的情况下接收/生成 json,但它可能不会持久。 Google 已经削弱了 node sdk 来强制你使用 api.ai。
  • 谢谢安德烈亚斯,我会看看它。 Bela,我不像很多开发者那样喜欢图形界面,所以如果 Google/api.ai 不提供简单的界面,Google Actions 就会失败
【解决方案2】:

您可以使用 JAX-RS 实现与 Google 兼容的操作。例如,这个 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 序列化器/反序列化器忽略未知属性,并在序列化过程中排除 null 或空字段。

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

【讨论】:

  • 感谢 Carlos,我使用了很多 JAX-RS,它对于快速开发 REST API 非常有用。我正在寻找一个 Go 实现,这个存储库是很好的灵感来源
  • 还有官方SDK到Java/Kotlin的移植。它具有匹配的 API 和官方的所有功能。可在此处获取github.com/TicketmasterMobileStudio/actions-on-google-kotlin
【解决方案3】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-17
    • 2018-09-12
    相关资源
    最近更新 更多