總覽
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