rest - 在 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 环境之外访问?任何帮助将非常感激。
解决方案
Actions on Google / Actions Builder 平台并非设计用于在 Google Assistant 环境之外使用。如果您想要一种以编程方式匹配意图或调用 API 的方法,您应该使用Dialogflow及其 API。
推荐阅读
- reactjs - 使用 Gatsby 和 Stripe 时如何修复“IntegrationError: No such sku: "prod_....." 错误
- ios - 如何调整 CALayer 大小以适应父视图
- excel - 工作表的 Excel Vba 复制方法失败 - 从 xlApp 复制到 ThisWorkbook
- php - 为什么我通过 Cloudflare 收到连续的 524 错误?
- azure - 有没有办法检查 Log Analytics 字段中的子字符串是否存在?
- sql - 无法执行 SQL Server 存储过程
- node.js - Bash 终端中的文本被覆盖!使用JS、Node.js(npms有:inquirer、console.table、mysql)
- python - 在 pandas 数据框的列中填充空值
- avro - Spring Cloud Stream Kafka Consumer 应用程序不允许添加供应商
- javascript - 如何确定 DOM 元素是否为滚动容器?