Usar a API Publish da Chrome Web Store

Informações gerais

A API Publish do Chrome Web Store fornece um conjunto de endpoints REST para criar, atualizar e publicar itens de maneira programática na Chrome Web Store.

Configuração inicial

Antes de começar a fazer chamadas REST na Chrome Web Store, você precisa ativar a API Chrome Web Store, configurar a tela de permissão OAuth e recuperar suas chaves de acesso à API. As seções a seguir mostram esse processo.

Ativar a API Chrome Web Store

  1. Acesse o console do Google Cloud.
  2. Crie um novo projeto ou selecione um existente. Crie um novo
projeto no console do Google
  3. Na barra de pesquisa, digite "API Chrome Web Store".
  4. Ative a API Chrome Web Store.

Configurar a tela de permissão OAuth

  1. Acesse a Tela de permissão OAuth.
  2. Selecione External e Create. Criar uma tela de consentimento do OAuth
  3. Preencha os campos obrigatórios em Informações do app (listados abaixo) e clique em Salvar e continuar.
    • Nome do app.
    • E-mail para suporte do usuário
    • E-mail de contato do desenvolvedor.
  4. Pule a seção "Escopos", clique em Salvar e em Continuar.
  5. Adicione seu endereço de e-mail para Usuários de teste, clique em Salvar e em Continuar.

Conseguir as chaves de acesso

  1. Acesse Credenciais.
  2. Clique em Criar credenciais e em ID do cliente OAuth. Criar credenciais
  3. Em Tipo de aplicativo, escolha App para computador.
  4. Preencha o nome e clique em Criar.

O console fornecerá o ID e a chave secreta do cliente.

Como testar o aplicativo OAuth

É possível recuperar um token de acesso para trabalhar com a API. Por exemplo, insira este URL no navegador, substituindo o $CLIENT_ID pelo do seu app:

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

Aparecerá uma página solicitando que você aceite a permissão para o escopo solicitado.

IU de solicitação de permissão

Clique em Aceitar e copie o código. O código será semelhante a este:

IU para copiar código

Use esse valor para solicitar um token de acesso. Por exemplo, com curl, é possível receber um token de acesso executando o comando a seguir (substituindo os valores de $CLIENT_ID, $CLIENT_SECRET e $CODE pelos valores acima):

> 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"

Isso retornará um resultado como:

{
  "access_token" : "ya29...",
  "expires_in" : 3600,
  "refresh_token" : "1/rwn...",
  "scope": "https://www.googleapis.com/auth/chromewebstore",
  "token_type" : "Bearer",
}

Agora você pode usar o access_token para chamar a API. Também é possível usar o token de atualização para receber tokens de acesso futuros. Os tokens expiram após uma hora.

Como usar a API

Assim que você tiver um token de acesso, sua extensão poderá usar a API Chrome Web Store Publish. Existem endpoints para criar, atualizar e publicar um item.

Veja abaixo uma lista de considerações para usar a API Publish:

Saiba mais sobre a API Publish da Chrome Web Store aqui.

Fazer upload de um pacote para criar um item da loja

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

Digite o exemplo a seguir na linha de comando:

> 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

Fazer upload de um pacote para atualizar um item da loja

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 é o código do item existente na loja on-line.

> 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

Publicar um item para o público

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

Como publicar um item para trusted testers

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

Verificar o status de upload de um item

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