概览
Chrome Web Store Publish API 提供了一组 REST 端点,用于以编程方式在 Chrome 应用商店中创建、更新和发布商品。
初始设置
您需要先启用 Chrome Web Store API、配置 OAuth 同意屏幕并检索 API 访问密钥,然后才能开始对 Chrome 应用商店进行 REST 调用。以下部分介绍了此过程。
启用 Chrome Web Store API
- 前往 Google Cloud 控制台。
- 创建新项目或选择现有项目。
- 在搜索栏中输入“Chrome Web Store API”。
- 启用 Chrome Web Store API。
配置 OAuth 权限请求页面
- 前往 OAuth 同意屏幕。
- 选择 External,然后选择 Create。
- 填写必填的应用信息字段(如下所列),然后点击保存并继续。
- 应用名称。
- 用户支持电子邮件地址。
- 开发者联系电子邮件地址。
- 跳过范围。点击保存,然后点击继续。
- 将您的电子邮件地址添加到测试用户页面,然后依次点击保存和继续。
获取访问密钥
- 前往凭据页面。
- 点击创建凭据,然后点击 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。您还可以使用刷新令牌来获取未来的访问令牌。请注意,令牌的有效期为 1 小时。
使用 API
获得访问令牌后,您的扩展程序就可以使用 Chrome Web Store Publish API 了。有多个端点可用于创建新商品、更新现有商品和发布商品。
下面列出了使用 Publish API 的注意事项:
- 开发者必须为其 Google 帐号启用两步验证,才能发布或更新现有扩展程序。
- 发布新商品之前,您必须填写开发者信息中心中的商品详情和隐私权规范标签页。
- 新商品或现有商品发布后,它将进入审核流程。如需了解详情,请参阅审核流程。
- 如要发布更新,请增加清单 version 字段中的数字。
如需详细了解 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