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
- Criar uma conta de serviço
- Adicionar sua conta de serviço aos proprietários do site
- Receber um token de acesso
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
- Abra a página Contas de serviço. Se solicitado, selecione um projeto.
- 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.
- A seção seguinte ,Permissões da conta de serviço (opcional), não é necessária. Clique em Continuar.
- 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.
- No painel lateral que será exibido, selecione o formato da sua chave: JSON é a opção recomendada.
- 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.
- 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:
- Primeiro, comprove a propriedade do site usando o Search Console.
- 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):
- Abra a Central do webmaster.
- Clique na propriedade em que você confirmou a propriedade.
- Na lista Proprietários verificados, clique em Adicionar um proprietário.
- 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
my-service-account@project-name.google.com.iam.gserviceaccount.com
Por exemplo: my-service-account@test-project-42.google.com.iam.gserviceaccount.com - No campo
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:
- Use
https://www.googleapis.com/auth/indexing
como o escopo. - Use um dos endpoints descritos em Como usar a API.
- Inclua o token de acesso da conta de serviço.
- 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.