Conditions requises pour l'utilisation de l'API d'indexation

Avant de pouvoir utiliser l'API d'indexation, vous devez effectuer certaines tâches, si ce n'est pas déjà fait :

Créer un projet pour votre client

Avant de pouvoir envoyer des requêtes à l'API d'indexation, vous devez fournir à Google des informations spécifiques sur votre client et activer l'accès à l'API. Pour ce faire, utilisez la console d'API Google afin de créer un projet (collection spécifique de paramètres et d'informations d'accès à l'API), puis enregistrez votre application.

Pour commencer à vous servir de l'API d'indexation, vous devez d'abord utiliser l'outil de configuration. Celui-ci vous guide lors de la création d'un projet dans la console d'API Google, ainsi que lors de l'activation de l'API et de la création des informations d'identification.

Créer un compte de service

  1. Ouvrez la page Comptes de service. Si vous y êtes invité, sélectionnez un projet.
  2. Cliquez sur Créer un compte de service.
  3. Dans la fenêtre Créer un compte de service, saisissez un nom pour le compte de service, puis sélectionnez Indiquer une nouvelle clé privée. Si vous souhaitez attribuer une autorité au niveau du domaine G Suite au compte de service, sélectionnez également Activer la délégation au niveau du domaine G Suite. Cliquez ensuite sur Enregistrer.

Votre nouvelle paire de clés publique et privée est générée et téléchargée sur votre ordinateur. Il s'agit de la seule copie de cette clé. Il vous incombe de la stocker en toute sécurité.

Valider la propriété d'un site dans la Search Console

Cette étape a pour but de prouver que votre propriété Web vous appartient réellement.

Pour valider la propriété de votre site, procédez comme suit :

  1. Suivez les étapes recommandées pour valider la propriété d'un site.
  2. Une fois que la propriété a été validée, ouvrez la Search Console.
  3. Cliquez sur la propriété validée.
  4. Dans la section "Paramètres" située à côté de la propriété validée, sélectionnez Détails de la validation.
  5. Sous Propriétaires validés, cliquez sur Ajouter un propriétaire.
  6. Ajoutez l'adresse e-mail de votre compte de service en tant que propriétaire au site. Cette adresse est disponible à deux endroits :
    • Dans le champ client_email de la clé privée JSON que vous avez téléchargée lors de la création du projet
    • Dans la colonne ID du compte de service de la vue "Comptes de service" de la Developers Console

    L'adresse e-mail se présente de la forme suivante :

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

    Exemple : "my-service-account@test-project-42.google.com.iam.gserviceaccount.com"

Obtenir un jeton d'accès

Pour appeler l'API d'indexation, l'appel doit être authentifié avec un jeton OAuth que vous recevez en échange de votre clé privée. Google fournit des bibliothèques clientes d'API permettant d'obtenir des jetons OAuth pour plusieurs langages.

Conditions requises

Lorsque vous soumettez une requête à l'API d'indexation, celle-ci doit respecter les conditions suivantes :

  1. Elle doit utiliser https://www.googleapis.com/auth/indexing comme champ d'application.
  2. Elle doit utiliser l'un des points de terminaison décrits dans la section relative à l'utilisation de l'API.
  3. Elle doit inclure le jeton d'accès au compte de service.
  4. Elle doit définir le corps de la requête, comme décrit dans la section relative à l'utilisation de l'API.

Exemples

Les exemples suivants illustrent comment obtenir un jeton d'accès OAuth :

Python

Permet d'obtenir un jeton OAuth via la bibliothèque cliente des API Google pour 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

Permet d'obtenir un jeton OAuth via la bibliothèque cliente des API pour 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

Permet d'obtenir un jeton OAuth via la bibliothèque cliente des API pour 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

Permet d'obtenir un jeton OAuth via la bibliothèque cliente pour 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);
  });
});

En plus de montrer comment obtenir un jeton, ces exemples indiquent où vous pouvez ajouter le corps du message de la requête. Pour plus d'informations sur les types d'appels que vous pouvez effectuer et sur la structure des corps de message pour ces appels, consultez la section relative à l'utilisation de l'API.

Envoyer des commentaires concernant…