本頁面說明如何使用 API 金鑰方法執行下列操作:
事前準備
頁面使用 curl
搭配 oauth2l 指令列工具,將要求傳送至 API 金鑰的 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 金鑰的唯一識別碼。