使用 Chrome Web Store Publish API

概览

Chrome Web Store Publish API 提供了一组 REST 端点,用于以编程方式在 Chrome 应用商店中创建、更新和发布商品。

初始设置

您需要先启用 Chrome Web Store API、配置 OAuth 同意屏幕并检索 API 访问密钥,然后才能开始对 Chrome 应用商店进行 REST 调用。以下部分介绍了此过程。

启用 Chrome Web Store 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. 点击创建凭据,然后点击 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

您将看到一个页面,要求您接受针对所请求范围的权限。

权限请求界面

点击接受并复制代码。代码应如下所示:

用于复制代码的界面

使用此值请求访问令牌。例如,使用 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。您还可以使用刷新令牌来获取未来的访问令牌。请注意,令牌的有效期为 1 小时。

使用 API

获得访问令牌后,您的扩展程序就可以使用 Chrome Web Store Publish API 了。有多个端点可用于创建新商品、更新现有商品和发布商品。

下面列出了使用 Publish API 的注意事项:

如需详细了解 Chrome Web Store 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