總覽
Chrome 線上應用程式商店發布 API 提供一組 REST 端點,可讓您透過程式輔助的方式在 Chrome 線上應用程式商店中建立、更新及發布項目。
初始設定
開始對 Chrome 線上應用程式商店進行 REST 呼叫之前,您必須啟用 Chrome Web Store API、設定 OAuth 同意畫面,以及擷取 API 存取金鑰。以下各節將逐步說明這個程序。
啟用 Chrome 線上應用程式商店 API
- 前往 Google Cloud 控制台。
- 建立新專案或選取現有專案。
- 在搜尋列中輸入「Chrome Web Store API」。
- 啟用 Chrome Web Store API。
設定 OAuth 同意畫面
- 前往 OAuth 同意畫面。
- 依序選取「External」和「Create」。
- 填妥下列必要的「應用程式資訊」欄位,然後按一下「儲存並繼續」。
- 應用程式名稱。
- 使用者支援電子郵件。
- 開發人員聯絡電子郵件地址。
- 略過範圍。依序按一下「儲存」和「繼續」。
- 將您的電子郵件地址新增至「測試使用者」,然後依序按一下「儲存」和「繼續」。
取得存取金鑰
- 前往「憑證」。
- 按一下「Create Credentials」(建立憑證),然後點選「OAuth client ID」(OAuth 用戶端 ID)。
- 在「應用程式類型」部分,選擇「電腦版應用程式」。
- 填寫名稱,然後按一下「建立」。
控制台會提供用戶端 ID 和用戶端密鑰。
測試 OAuth 應用程式
您可以擷取存取權杖以與 API 搭配使用。舉例來說,請在瀏覽器中輸入這個網址,並將 $CLIENT_ID 替換為應用程式的網址:
https://accounts.google.com/o/oauth2/auth?response_type=code&scope=https://www.googleapis.com/auth/chromewebstore&client_id=$CLIENT_ID&redirect_uri=urn:ietf:wg:oauth:2.0:oob
系統會顯示頁面,要求您接受要求範圍的權限。
按一下「接受」並複製代碼。如下所示:
使用這個值即可請求存取權杖。舉例來說,使用 curl
時,您可以執行下列指令 (將 $CLIENT_ID、$CLIENT_SECRET 和 $CODE 的值替換成上述的值),取得存取權杖:
> curl "https://accounts.google.com/o/oauth2/token" -d \ "client_id=$CLIENT_ID&client_secret=$CLIENT_SECRET&code=$CODE&grant_type=authorization_code&redirect_uri=urn:ietf:wg:oauth:2.0:oob"
這會傳回以下結果:
{ "access_token" : "ya29...", "expires_in" : 3600, "refresh_token" : "1/rwn...", "scope": "https://www.googleapis.com/auth/chromewebstore", "token_type" : "Bearer", }
您現在可以使用 access_token
呼叫 API。您也可以使用更新權杖,取得日後的存取權杖。請注意,權杖會在一小時後失效。
使用 API
取得存取權杖後,您的擴充功能就能使用 Chrome 線上應用程式商店 Publish API。您可以使用端點建立新項目、更新現有項目及發布項目。
以下是使用 Publish API 的注意事項清單:
- 開發人員必須為 Google 帳戶啟用兩步驟驗證,才能發布或更新現有擴充功能。
- 您必須先填寫開發人員資訊主頁的「商店資訊」和「隱私權實務規範」分頁,才能發布新商品。
- 發布全新或現有項目後,就會進入審查程序。詳情請參閱「審核程序」一文。
- 如要發布更新,請在資訊清單的 version 欄位中增加數字。
如要進一步瞭解 Chrome 線上應用程式商店 Publish API,請按這裡。
上傳套件以建立新的商店商品
Endpoint: https://www.googleapis.com/upload/chromewebstore/v1.1/items Type: POST Header Parameters: $TOKEN: the access token Body content: the package file to upload
在指令列中輸入以下範例:
> curl \ -H "Authorization: Bearer $TOKEN" \ -H "x-goog-api-version: 2" \ -X POST \ -T $FILE_NAME \ -v \ https://www.googleapis.com/upload/chromewebstore/v1.1/items
上傳套件以更新現有商店商品
Endpoint: https://www.googleapis.com/upload/chromewebstore/v1.1/items/$ITEM_ID Type: PUT Header Parameters: $TOKEN: the access token Body content: the package file to upload
$ITEM_ID 是現有「線上應用程式商店」商品的 ID。
> curl \ -H "Authorization: Bearer $TOKEN" \ -H "x-goog-api-version: 2" \ -X PUT \ -T $FILE_NAME \ -v \ https://www.googleapis.com/upload/chromewebstore/v1.1/items/$ITEM_ID
將項目公開發布
Endpoint: https://www.googleapis.com/chromewebstore/v1.1/items/$ITEM_ID/publish Type: POST Header Parameters: $TOKEN: the access token
> curl \ -H "Authorization: Bearer $TOKEN" \ -H "x-goog-api-version: 2" \ -H "Content-Length: 0" \ -X POST \ -v \ https://www.googleapis.com/chromewebstore/v1.1/items/$ITEM_ID/publish
將商品發布給信任的測試人員
Endpoint: https://www.googleapis.com/chromewebstore/v1.1/items/$ITEM_ID/publish?publishTarget=trustedTesters Type: POST Header Parameters: $TOKEN: the access token
> curl \ -H "Authorization: Bearer $TOKEN" \ -H "x-goog-api-version: 2" \ -H "Content-Length: 0" \ -X POST \ -v \ https://www.googleapis.com/chromewebstore/v1.1/items/$ITEM_ID/publish?publishTarget=trustedTesters
正在查看項目的上傳狀態
Endpoint: https://www.googleapis.com/chromewebstore/v1.1/items/$ITEM_ID?projection=DRAFT Type: GET Header Parameters: $TOKEN: the access token
curl \ -H "Authorization: Bearer $TOKEN" \ -H "x-goog-api-version: 2" \ -H "Content-Length: 0" \ -H "Expect:" \ -X GET \ -v \ https://www.googleapis.com/chromewebstore/v1.1/items/$ITEM_ID?projection=DRAFT