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 Criar conta de serviço, digite 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 seguinte ,Permissões da conta de serviço (opcional), 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 Criar chave.
  5. No painel lateral que será 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 é feito na sua máquina. Essa é a única cópia da chave. Para saber mais sobre como armazenar com segurança, consulte Como gerenciar chaves de contas 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.

Adicionar sua conta de serviço aos proprietários do site

Faça o seguinte para adicionar a conta de serviço aos proprietários do site:

  1. Primeiro, comprove a propriedade do site usando o Search Console.
  2. Adicione sua conta de serviço aos proprietários.

1. Comprovar a propriedade do site

Verifique a propriedade do seu site usando o Search Console. É possível usar qualquer método de verificação compatível com o Search Console. Você pode criar uma propriedade do domínio (example.com) ou uma propriedade de prefixo de URL (https://example.com ou https://example.com/some/path/) para representar seu site. Os sites são chamados de propriedades no Search Console.

2. Conceder o status de proprietário à sua conta de serviço

Em seguida, adicione sua conta de serviço na função de proprietário do site (delegado):

  1. Abra a Central do webmaster.
  2. Clique na propriedade em que você confirmou a propriedade.
  3. Na lista Proprietários verificados, clique em Adicionar um proprietário.
  4. Informe o e-mail da sua conta de serviço como proprietária delegada. Você encontra o endereço de e-mail da sua conta de serviço em dois lugares:
    • No campo client_email da chave privada JSON que você transferiu por download quando criou o projeto
    • Na coluna ID da conta de serviço da tela "Contas de serviço" no Developers Console
    O endereço de e-mail tem o seguinte formato:
    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

Cada chamada para a API Indexing precisa ser autenticada com um token OAuth recebido em troca da sua chave privada. Cada token é válido por um período. O Google fornece bibliotecas de cliente de API para receber tokens OAuth de 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 endpoints 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 as a JSON string.
# 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 chamada que você pode fazer e a estrutura do corpo das mensagens para essas chamadas, consulte Como usar a API.