本页介绍了如何使用 API 密钥方法来执行以下操作:
准备工作
此页面使用 curl 和 Google Cloud CLI 向 API 密钥 API 发送请求。如需详细了解如何设置 API 以进行实验,请参阅 API Keys 使用入门。
列出项目中的 API 密钥
您可以使用 ListKeys 方法获取 Google Cloud 项目拥有的所有密钥的列表:
gcurl https://apikeys.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/keys
成功后,您会收到类似于以下内容的响应:
{
"keys": [
{
"name": "projects/12345678/locations/global/keys/2885bf87-5b84-47fa-92af-08c3e9337349",
"displayName": "API key 2",
"createTime": "2019-05-29T22:07:22.036Z",
"uid": "2885bf87-5b84-47fa-92af-08c3e9337349",
"updateTime": "2019-05-29T22:07:22.058623Z",
"restrictions": {
"androidKeyRestrictions": {}
},
"etag": "zHib8eXEMCxe4ayQEbIaZg=="
},
{
"name": "projects/12345678/locations/global/keys/a4db08b7-5729-4ba9-8c08-f2df493465a1",
"displayName": "API key 1",
"createTime": "2019-05-29T22:06:58.844Z",
"uid": "a4db08b7-5729-4ba9-8c08-f2df493465a1",
"updateTime": "2019-05-29T22:06:58.855103Z",
"restrictions": {
"androidKeyRestrictions": {}
},
"etag": "0L5KcPMGoNi53K5+FqPxiw=="
}
]
}默认情况下,ListKeys 方法会返回可用 API 密钥的列表。
如需查看所有密钥的列表(包括标记为待删除的密钥),请添加查询参数 show_deleted=true:
gcurl https://apikeys.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/keys?show_deleted=true
成功后,您会收到类似于以下内容的响应:
{
"keys": [
{
"name": "projects/12345678/locations/global/keys/5d3564ad-f08e-48df-b0ca-0f50858ba3f2",
"displayName": "Key 1",
"createTime": "2019-06-12T04:47:30.214Z",
"uid": "5d3564ad-f08e-48df-b0ca-0f50858ba3f2",
"updateTime": "2021-03-05T22:35:37.387645Z",
"deleteTime": "2021-03-05T22:35:37.290544Z",
"etag": "V96UGAyyz+6sUHttzK42pQ=="
},
{
"name": "projects/12345678/locations/global/keys/7ad567fa-c11b-4903-99dc-88f89da7d73a",
"displayName": "Key 2",
"createTime": "2019-06-12T00:47:27.778Z",
"uid": "7ad567fa-c11b-4903-99dc-88f89da7d73a",
"updateTime": "2021-03-05T22:23:57.002187Z",
"deleteTime": "2021-03-05T22:23:56.350234Z",
"etag": "njPE6YjwHlrh6TLyxHibBg=="
},
{
"name": "projects/12345678/locations/global/keys/a4db08b7-5729-4ba9-8c08-f2df493465a1",
"displayName": "API key 1",
"createTime": "2019-05-29T22:06:58.844Z",
"uid": "a4db08b7-5729-4ba9-8c08-f2df493465a1",
"updateTime": "2019-05-29T22:06:58.855103Z",
"restrictions": {
"androidKeyRestrictions": {}
},
"etag": "0L5KcPMGoNi53K5+FqPxiw=="
}
]
}deleteTime 字段用于存储删除命令的发出时间。
密钥会在删除命令发出 30 天后永久删除。
如果您的项目中有大量 API 密钥,您可能更希望对结果进行分页,而不是返回所有密钥。如需控制每页的结果数量,请添加 pageSize 查询参数,并将其设置为您希望返回的结果数量:
gcurl https://apikeys.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/keys?pageSize=25
响应的末尾包含 nextPageToken 字段。如需获取下一页结果,请在下一次调用中添加 pageToken 查询参数,以包含相应令牌:
gcurl 'https://apikeys.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/keys?pageSize=25&pageToken=TOKEN'
请注意,您必须使用英文单引号将网址括起来,因为 & 是特殊的 Bash 字符。
获取 API 密钥的元数据
如需获取有关特定 API 密钥的元数据,请使用 Key.name 调用 GetKey 方法:
gcurl https://apikeys.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/keys/KEY_ID
获取密钥字符串
出于安全考虑,ListKeys 和 GetKey 方法不会返回 Key.keyString。如需获取 API 密钥的 keyString,请使用 Key.name 调用 GetKeyString 方法:
gcurl https://apikeys.googleapis.com/v2/Key.name/keyString
调用用户必须拥有 apikeys.keys.getKeyString 权限才能调用 GetKeyString 方法。
通过密钥字符串查找密钥名称和项目
如果您有 keyString,并且需要查找密钥 name 和拥有该 API 密钥的项目,请调用 LookupKey 方法并指定 keyString 查询参数:
gcurl https://apikeys.googleapis.com/v2/keys:lookupKey?keyString=KEY_STRING
响应类似于以下内容:
{
"parent": "projects/12345678/locations/global",
"name": "projects/12345678/locations/global/keys/2c437be3-1c77-417b-8f6f-748189760227"
}在响应结果中:
parent字段包含创建 API 密钥的 Google Cloud 项目的项目编号。name字段包含 API 密钥的唯一标识符。