Pré-requisitos da API Indexing

Antes de começar a usar a API Indexing, há alguns procedimentos que você precisa realizar, caso ainda não tenha feito:

Criar um projeto para o cliente

Antes de enviar solicitações à API Indexing, informe o Google sobre seu cliente e ative o acesso à API. Faça isso usando o Console de APIs do Google para criar um projeto, que é uma coleção nomeada de configurações e informações de acesso à API, e registre seu aplicativo.

Para começar a usar a API Indexing, primeiro use a ferramenta de configuração, que oferece orientações sobre como criar um projeto no Console de APIs do Google, ativar a API e criar credenciais.

Criar uma conta de serviço

  1. Abra a página Contas de serviço. Se solicitado, selecione um projeto.
  2. Clique em add Criar conta de serviço, insira um nome e uma descrição para a conta correspondente. Você pode usar o ID da conta de serviço padrão ou escolher um código diferente e único. Quando terminar, clique em Criar.
  3. A seção Permissões da conta de serviço (opcional) a seguir não é necessária. Clique em Continuar.
  4. Em Conceda aos usuários acesso a essa conta de serviço, role a tela para baixo até a seção Criar chave. Clique em add Criar chave.
  5. No painel lateral exibido, selecione o formato da sua chave: JSON é a opção recomendada.
  6. Clique em Criar. Seu novo par de chave pública/privada é gerado, e o download dele é feito na sua máquina. Essa é a única cópia da chave. Para saber mais sobre como armazená-la com segurança, consulte Como gerenciar chaves da conta de serviço.
  7. Clique em Fechar na caixa de diálogo Chave privada salva no seu computador e clique em Concluir para retornar à tabela das suas contas de serviço.

As etapas a seguir só serão necessárias se você quiser conceder autoridade em todo o domínio do G Suite à conta de serviço.

  1. Localize a conta de serviço recém-criada na tabela. Em Ações, clique em more_vert e depois em Editar.
  2. Nos detalhes da conta de serviço, clique em expand_more Mostrar delegação em todo o domínio e verifique se a caixa de seleção Ativar a delegação em todo o domínio G Suite está marcada.
  3. Se você ainda não tiver configurado a tela de consentimento do OAuth do seu aplicativo, faça isso antes de ativar a delegação em todo o domínio. Siga as instruções para configurar a tela de consentimento do OAuth, repita as etapas acima e marque novamente a caixa de seleção.
  4. Clique em Salvar para atualizar a conta de serviço e retornar à tabela de contas de serviço. A nova coluna Delegação em todo o domínio será exibida. Clique em Ver ID do cliente para ver e anotar o ID do cliente.

Verificar a propriedade do site no Search Console

Nesta etapa, você verificará o controle sobre sua propriedade da Web.

Para verificar a propriedade do seu site:

  1. Siga as etapas recomendadas para verificar sua propriedade.
  2. Depois que sua propriedade tiver sido verificada, abra o Search Console.
  3. Clique na propriedade verificada.
  4. Selecione Detalhes da verificação no ícone de configurações (engrenagem) ao lado da propriedade verificada.
  5. Em Proprietários verificados, clique em Adicionar um proprietário.
  6. Adicione o endereço de e-mail da sua conta de serviço como proprietário. É possível encontrar o endereço de e-mail da sua conta de serviço em dois lugares:
    • No campo client_email, na chave privada JSON que você transferiu por download quando criou seu projeto.
    • Na coluna "ID da conta de serviço" da tela "Contas de serviço" no Play Console.

    O endereço de e-mail é parecido com este:

    my-service-account@project-name.google.com.iam.gserviceaccount.com

    Por exemplo, "my-service-account@test-project-42.google.com.iam.gserviceaccount.com".

Receber um token de acesso

Para chamar a API Indexing, a chamada precisa ser autenticada com um token OAuth recebido em troca da sua chave privada. O Google fornece bibliotecas de clientes de API para receber tokens OAuth para várias linguagens.

Requisitos

Para enviar uma solicitação para a API Indexing, as seguintes etapas são obrigatórias:

  1. Use https://www.googleapis.com/auth/indexing como o escopo.
  2. Use um dos pontos de extremidade descritos em Como usar a API.
  3. Inclua o token de acesso da conta de serviço.
  4. Defina o corpo da solicitação conforme descrito em Como usar a API.

Exemplos

Os exemplos a seguir mostram como receber um token de acesso do OAuth:

Python

Recebe um token OAuth usando a Biblioteca de cliente de APIs do Google para Python:

from oauth2client.service_account import ServiceAccountCredentials
import httplib2

SCOPES = [ "https://www.googleapis.com/auth/indexing" ]
ENDPOINT = "https://indexing.googleapis.com/v3/urlNotifications:publish"

# service_account_file.json is the private key that you created for your service account.
JSON_KEY_FILE = "service_account_file.json"

credentials = ServiceAccountCredentials.from_json_keyfile_name(JSON_KEY_FILE, scopes=SCOPES)

http = credentials.authorize(httplib2.Http())

// Define contents here. This example shows a simple update request. Other types
// of requests are described in the next step.
content = "{
  \"url\": \"http://example.com/jobs/42\",
  \"type\": \"URL_UPDATED"
}"

response, content = http.request(ENDPOINT, method="POST", body=content)

Java

Recebe um token OAuth usando a Biblioteca de cliente de API para Java:

String scopes = "https://www.googleapis.com/auth/indexing";
String endPoint = "https://indexing.googleapis.com/v3/urlNotifications:publish";

JsonFactory jsonFactory = new JacksonFactory();

// service_account_file.json is the private key that you created for your service account.
InputStream in = IOUtils.toInputStream("service_account_file.json");

GoogleCredential credentials =
  GoogleCredential.fromStream(in, this.httpTransport, jsonFactory).createScoped(Collections.singleton(scopes));

GenericUrl genericUrl = new GenericUrl(endPoint);
HttpRequestFactory requestFactory = this.httpTransport.createRequestFactory();

// Define content here. The structure of the content is described in the next step.
String content = "{"
  + "\"url\": \"http://example.com/jobs/42\","
  + "\"type\": \"URL_UPDATED\","
  + "}";

HttpRequest request =
  requestFactory.buildPostRequest(genericUrl, ByteArrayContent.fromString("application/json", content));

credentials.initialize(request);
HttpResponse response = request.execute();
int statusCode = response.getStatusCode();

PHP

Recebe um token OAuth usando a Biblioteca de cliente de API para PHP:

require_once 'google-api-php-client/vendor/autoload.php';

$client = new Google_Client();

// service_account_file.json is the private key that you created for your service account.
$client->setAuthConfig('service_account_file.json');
$client->addScope('https://www.googleapis.com/auth/indexing');

// Get a Guzzle HTTP Client
$httpClient = $client->authorize();
$endpoint = 'https://indexing.googleapis.com/v3/urlNotifications:publish';

// Define contents here. The structure of the content is described in the next step.
$content = "{
  \"url\": \"http://example.com/jobs/42\",
  \"type\": \"URL_UPDATED"
}";

$response = $httpClient->post($endpoint, [ 'body' => $content ]);
$status_code = $response->getStatusCode();

Node.js

Recebe um token OAuth usando a Biblioteca de cliente para Node.js:

var request = require("request");
var google = require("googleapis");
var key = require("./service_account.json");

const jwtClient = new google.auth.JWT(
  key.client_email,
  null,
  key.private_key,
  ["https://www.googleapis.com/auth/indexing"],
  null
);

jwtClient.authorize(function(err, tokens) {
  if (err) {
    console.log(err);
    return;
  }
  let options = {
    url: "https://indexing.googleapis.com/v3/urlNotifications:publish",
    method: "POST",
    // Your options, which must include the Content-Type and auth headers
    headers: {
      "Content-Type": "application/json"
    },
    auth: { "bearer": tokens.access_token },
    // Define contents here. The structure of the content is described in the next step.
    json: {
      "url": "http://example.com/jobs/42",
      "type": "URL_UPDATED"
    };
  request(options, function (error, response, body) {
    // Handle the response
    console.log(body);
  });
});

Além de mostrar como receber um token, esses exemplos mostram onde você pode adicionar o corpo da mensagem de solicitação. Para ver informações sobre os tipos de chamadas que você pode fazer e a estrutura dos corpos das mensagens para essas chamadas, consulte Como usar a API.

Enviar comentários sobre…