使用 Chrome 線上應用程式商店發布 API

總覽

Chrome 線上應用程式商店發布 API 提供一組 REST 端點,可讓您透過程式輔助的方式在 Chrome 線上應用程式商店中建立、更新及發布項目。

初始設定

開始對 Chrome 線上應用程式商店進行 REST 呼叫之前,您必須啟用 Chrome Web Store API、設定 OAuth 同意畫面,以及擷取 API 存取金鑰。以下各節將逐步說明這個程序。

啟用 Chrome 線上應用程式商店 API

  1. 前往 Google Cloud 控制台
  2. 建立新專案或選取現有專案。 在 Google 控制台中建立新專案
  3. 搜尋列中輸入「Chrome Web Store API」。
  4. 啟用 Chrome Web Store API

設定 OAuth 同意畫面

  1. 前往 OAuth 同意畫面
  2. 依序選取「External」和「Create」建立 OAuth 同意畫面
  3. 填妥下列必要的「應用程式資訊」欄位,然後按一下「儲存並繼續」
    • 應用程式名稱。
    • 使用者支援電子郵件。
    • 開發人員聯絡電子郵件地址。
  4. 略過範圍。依序按一下「儲存」和「繼續」
  5. 將您的電子郵件地址新增至「測試使用者」,然後依序按一下「儲存」和「繼續」

取得存取金鑰

  1. 前往「憑證」。
  2. 按一下「Create Credentials」(建立憑證),然後點選「OAuth client ID」(OAuth 用戶端 ID)建立憑證
  3. 在「應用程式類型」部分,選擇「電腦版應用程式」
  4. 填寫名稱,然後按一下「建立」

控制台會提供用戶端 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

系統會顯示頁面,要求您接受要求範圍的權限。

權限要求 UI

按一下「接受」並複製代碼。如下所示:

用於複製程式碼的使用者介面

使用這個值即可請求存取權杖。舉例來說,使用 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 的注意事項清單:

如要進一步瞭解 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