使用 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