java - 让我的 Google 助理针对特定单词调用我的 REST API

标签 java spring-boot rest api google-assistant-sdk

开始一个新项目(基于Spring Boot的Rest api),我想让它连接到Google。

基本上,我想通过对 Google Assistant 说出特定的单词来触发对我的 REST API 的调用。例如,如果我说“OK {myApiName}”,然后说“Do this”,它将以 POST 方式调用我的 api 上之前定义的端点,并在负载中包含“Do this”。

我已经检查过 Google Actions API,但我很迷茫...... 这可能吗 ?有什么建议吗?

我正在寻找易于配置的东西,Google 始终可以触发相同的端点,我更喜欢自己处理有效负载的解释。

非常感谢!

最佳答案

我不确定我是否理解您为什么要从 Google Assistant 进行 API 调用,但要做到这一点,您可以构建一个 Conversational Aciton ,这是 Google Assistant 的应用程序。使用 Dialogflow 可以非常简单快速地完成此操作。

Dialogflow 是一种 NLP,可以识别人类语言并“理解”用户的要求。

在 Dialogflow 中,您可以实现意图。意图用于将某个单词或短语与“操作”相关联。

在您的情况下,短语可能是“OK {myApiName} do {this}”,关联的操作是使用负载 {this} 调用 {myApiName}。

在“Dialogflow Fulfillment”中,您可以实现API调用并返回您想要的结果。

流程是这样的:

enter image description here

要实现您的意图,您应该执行以下操作:为 Dialogflow 指定“训练短语”,使其能够匹配用户的意图并将有效负载封装在“参数”中。参数只不过是一个变量,您需要用它来存储要发送到 API 的负载。

enter image description here

此时,只需实现与您的意图相关的实现,以使用保存在参数中的相关负载进行 API 调用。像这样的事情:

enter image description here

做起来比说起来容易。我希望我已经让您了解它是如何工作的。我建议您阅读文档以更好地理解。

关于java - 让我的 Google 助理针对特定单词调用我的 REST API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60693948/

相关文章:

java - Java中的跨进程同步

java - 如何在 Spring MVC 中更改 BindingResult 中的异常消息

java - ResourceController 上的 NumberFormatException 无法从字符串转换为整数

javascript - 如何使用 JavaScript 发送请求并接收来自 REST API 的响应?

Controller 休息服务的 Spring Junit 测试用例

java - 当我尝试在 OSX 下使用 Tomcat 在 Netbeans 中运行 JSP 项目时,程序挂起

java - 应用小程序的安全策略

java - Jakson 多态枚举案例

使用 keycloak 进行 Springboot 测试

java - JDK 17 spring boot 无法使 java.time.LocalDateTime 私有(private)化