本页介绍了如何使用 API 密钥方法执行以下操作:
准备工作
该页面将 curl
与 oauth2l 命令行工具结合使用,以向 API Keys 的 API 发送请求。如需详细了解如何开始使用 API,请参阅 API 密钥使用入门。
列出项目中的 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 密钥的列表。如需查看已标记为删除的列表键,请使用 filter=state:DELETED
添加查询参数:
gcurl https://apikeys.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/keys?filter=state:DELETED
成功后,您将收到类似于以下内容的响应:
{ "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==" } ] }
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 密钥的 Cloud 项目的编号。name
字段包含 API 密钥的唯一标识符。