google-people-api - 未经授权的 Google People API
问题描述
我想获得自己的 Google 联系人,所以我阅读了People API 文档,在“获取和使用 API 密钥”下的“授权请求”部分,它说:
API 密钥:不提供 OAuth 2.0 令牌的请求必须发送 API 密钥。密钥标识您的项目并提供 API 访问、配额和报告。
API 支持对 API 密钥的多种类型的限制。如果您需要的 API 密钥尚不存在,则通过单击Create credentials > API key 在控制台中创建一个 API 密钥。您可以在生产中使用之前限制密钥,方法是单击限制密钥并选择其中一项限制。
所以这看起来很容易,我去了项目页面并创建了一个不受限制的 API 密钥,然后我可以创建这个请求 URL:https://people.googleapis.com/v1/people/me?key=API_KEY&personFields=names,正如此声明所建议的,URL 中的 API 密钥。
获得 API 密钥后,您的应用程序可以将查询参数 key= yourAPIKey 附加到所有请求 URL。
但是当我运行我在返回之前发布的 URL 时:
{
"error": {
"code": 401,
"message": "The request does not have valid authentication credentials.",
"status": "UNAUTHENTICATED"
}
}
我究竟做错了什么?:(
解决方案
原来解决方案非常简单,我觉得很愚蠢,不可能使用 API 密钥访问您自己的 Google 联系人或任何其他私人数据,如果您尝试访问任何私人数据,您应该使用 OAuth 2.0 和不是 API 密钥(与您可以使用 API 密钥的公共 YouTube 播放列表不同)。感谢@Mateo Randwolf
推荐阅读
- html - 带有进度表的并排 DIV
- c# - 用于了解我的 Windows 设备上的可用存储空间量的 API
- c++ - 旋转光线追踪相机
- javascript - Vanilla JS 图像滑块使用数组来保存图像不工作
- excel - 通过 HTTP 链接从关闭的 Excel 工作簿中获取价值
- excel - 如何比较两个电子表格以查看 a 列是否匹配并且它们是否重叠范围 =true?
- lua - 将已定义的变量发送到不和谐的特定通道的正确语法是什么
- db2 - 通过 LotusScript 将数据添加到 DB2
- c++ - 我在寻找真正方块的正确轨道上吗?
- android - 根据应用程序主题而不是系统选择启动画面图像和背景颜色(忽略 MODE_NIGHT_FOLLOW_SYSTEM。)