Requisitos previos para la API de Indexación

Antes de poder comenzar a usar la API de indexación, debes completar algunas acciones, si es que todavía no lo hiciste:

Crea un proyecto para tu cliente

Para poder enviar solicitudes a la API de indexación, primero debes notificarle a Google acerca de tu cliente y activar el acceso a la API. Puedes hacerlo con Google API Console para crear un proyecto (una colección determinada de configuraciones y datos de acceso a la API) y registrar la aplicación.

Para comenzar a usar la API de indexación, primero debes usar la herramienta de configuración, que te guiará para crear un proyecto en Google API Console, habilitar la API y crear credenciales.

Crea una cuenta de servicio

  1. Abre la página de Cuentas de servicio. Si se te solicita, selecciona un proyecto.
  2. Haz clic en Crear cuenta de servicio.
  3. En la ventana Crear cuenta de servicio, escribe un nombre para la cuenta y selecciona Proporcionar una nueva clave privada. Si quieres otorgarle a la cuenta autoridad en todo el dominio de G Suite, también selecciona Habilitar la delegación de todo el dominio de G Suite. Luego, haz clic en Guardar.

Ya se generó y descargó el nuevo par de claves pública y privada en tu equipo, que será es la única copia de la clave. Tú tienes la responsabilidad de almacenarla de manera segura.

Verifica la propiedad del sitio en Search Console

En este paso, verificarás que tienes el control de tu propiedad web.

Para verificar la propiedad de tu sitio, haz lo siguiente:

  1. Sigue los pasos recomendados para verificar la propiedad.
  2. Una vez verificada, abre Search Console.
  3. Haz clic en tu propiedad verificada.
  4. Selecciona la opción de detalles de verificación en el engranaje de Configuración junto a la propiedad verificada.
  5. En la opción de propietarios verificados, haz clic en la opción para agregar un propietario.
  6. Agrega la dirección de correo electrónico de tu cuenta de servicio como propietario de la propiedad. Puedes encontrarla en dos lugares:
    • El campo client_email en la clave privada de JSON que descargaste cuando creaste el proyecto
    • La columna ID de la cuenta de servicio de la vista de cuenta de servicios en Developers Console

    La dirección de correo electrónico tiene un formato similar al siguiente:

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

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

Cómo obtener un token de acceso

Para llamar a la API de Indexación, la llamada debe estar autenticada con un token OAuth que obtienes a cambio de la clave privada. Google proporciona bibliotecas cliente de API a fin de obtener tokens OAuth para varios lenguajes.

Requisitos

Cuando envíes una solicitud a la API de indexación, sigue estos pasos:

  1. Usa https://www.googleapis.com/auth/indexing como alcance.
  2. Utiliza uno de los extremos que se describen en Cómo usar la API.
  3. Incluye el token de acceso de la cuenta de servicio.
  4. Define el cuerpo de la solicitud como se describe en Cómo usar la API.

Ejemplos

En los siguientes ejemplos, se muestra cómo obtener un token de acceso OAuth.

Python

Obtiene un token OAuth token mediante la biblioteca cliente de la API de 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

Obtiene un token OAuth con la biblioteca cliente de la API de Google 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

Obtiene un token OAuth con la biblioteca cliente de la API de Google 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

Obtiene un token OAuth con la biblioteca cliente de 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);
  });
});

Además de mostrar cómo obtener un token, estos ejemplos muestran la forma en que puedes agregar el cuerpo del mensaje de la solicitud. Para obtener información acerca de los tipos de llamada que puedes hacer y la estructura de los cuerpos del mensaje para ellas, consulta Cómo usar la API.

Enviar comentarios sobre…