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.
  3. Na janela Criar conta de serviço, digite um nome para a conta de serviço e selecione Fornecer uma nova chave privada. Se você quiser conceder autoridade em todo o domínio do G Suite à conta de serviço, selecione também Habilitar a delegação em todo o domínio G Suite. Em seguida, clique em Salvar.

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. Você é responsável por guardá-la com segurança.

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…