首页 > 解决方案 > 在 Google Assistant 之外使用 Actions REST API?

问题描述

我们目前有一个 Google Action 要求用户登录我们的系统,并且我们的 OAuth 帐户链接流程成功地提供了一个访问令牌,用于通过我们的履行后端进行身份验证。当我们的 Action 在 Google Assistant 中进行查询时,这非常有用。

我们也有兴趣在我们的网络应用程序、iOS 应用程序和其他应用程序平台中将 Google Actions REST API 与自己的自定义聊天机器人一起使用,但是当在Google Assistant之外发出 Google Actions API 请求时,我们不断收到 401 身份验证错误回应。

是否可以在 Google Assistant 环境之外使用 Google Actions REST API ?如果是这样,那么有人能够告诉我们在 REST API 调用中缺少什么吗?

例如,根据 Google Actions REST API 文档 - https://developers.google.com/assistant/actions/api - 如果我们在测试 Google 时通过“Authorization: Bearer”标头包含有效的 OAuth 访问令牌通过命令行调用操作 REST API:

curl -X POST "https://actions.googleapis.com/v2/projects/[OUR PROJECT ID]:matchIntents" -H "Authorization: Bearer [OUR OAUTH ACCESS TOKEN]" -H "x-goog-user-project: [OUR PROJECT ID]" -H "User-Agent: [OUR APP PLATFORM/VERSION INFO]" -H "accept: application/json" -H "Content-Type: application/json" -d "{ \"query\": \"how much money do we owe\", \"locale\": \"en-US\"}"

无论我们如何调整标头,我们总是会收到 401 错误响应:

{
  "error": {
    "code": 401,
    "message": "Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.",
    "status": "UNAUTHENTICATED"
  }
}

我们已经在网上广泛搜索了任何故障排除提示,但我们没有找到任何关于我们可能在这里做错的答案。我们的 API 调用是否缺少某些内容- 或者 - Google Actions REST API 是否根本无法在 Google Assistant 环境之外访问?任何帮助将非常感激。

标签: restactions-on-google

解决方案


Actions on Google / Actions Builder 平台并非设计用于在 Google Assistant 环境之外使用。如果您想要一种以编程方式匹配意图或调用 API 的方法,您应该使用Dialogflow及其 API。


推荐阅读