Prerequisiti per l'API Indexing

Prima di poter iniziare a utilizzare l'API Indexing devi completare alcune operazioni, ovvero:

Creare un progetto per il client

Prima di poter inviare richieste all'API Indexing, devi comunicare a Google il tuo client e attivare l'accesso all'API. A tale scopo, utilizza la console API di Google per creare un progetto, ovvero una raccolta denominata di impostazioni e informazioni relative all'accesso all'API, e registra la tua applicazione.

Per iniziare a usare l'API Indexing devi prima utilizzare lo strumento di configurazione, che ti aiuterà a creare un progetto nella console API di Google, attivare l'API e creare le credenziali.

Creare un account di servizio

  1. Apri la pagina Account di servizio. Se richiesto, seleziona un progetto.
  2. Fai clic su Crea account di servizio, quindi inserisci un nome e una descrizione per l'account di servizio. Puoi utilizzare l'ID account di servizio predefinito o sceglierne un altro univoco. Al termine, fai clic su Crea.
  3. La sezione Autorizzazioni dell'account di servizio (facoltativo) che segue non è obbligatoria. Fai clic su Continua.
  4. Nella schermata Concedi agli utenti l'accesso a questo account di servizio, scorri verso il basso fino alla sezione Crea chiave. Fai clic su Crea chiave.
  5. Nel riquadro laterale che viene visualizzato, seleziona il formato della chiave (quello consigliato è JSON).
  6. Fai clic su Crea. Viene generata e scaricata sul tuo computer una nuova coppia di chiavi pubblica/privata, che sarà l'unica copia esistente. Per informazioni su come archiviare le chiavi in modo sicuro, consulta la sezione Gestire le chiavi degli account di servizio.
  7. Fai clic su Chiudi nella finestra di dialogo Chiave privata salvata nel computer, poi fai clic su Fine per tornare alla tabella degli account di servizio.

Aggiungere l'account di servizio come proprietario del sito

Per aggiungere l'account di servizio come proprietario di un sito devi:

  1. Dimostrare di possedere il sito utilizzando Search Console.
  2. Aggiungere l'account di servizio come proprietario.

1. Dimostra di possedere il sito

Verifica la proprietà del tuo sito utilizzando Search Console. Puoi utilizzare qualsiasi metodo di verifica supportato da Search Console. Per rappresentare il tuo sito, puoi creare una proprietà Dominio (example.com) o una proprietà con prefisso URL (https://example.com o https://example.com/some/path/). Tieni presente che i siti vengono chiamati proprietà in Search Console.

2. Concedi lo stato di proprietario al tuo account di servizio

A questo punto, aggiungi l'account di servizio come proprietario del sito (delegato):

  1. Apri Webmaster Central.
  2. Fai clic sulla proprietà per cui hai verificato di essere il proprietario.
  3. Nell'elenco Proprietario verificato, fai clic su Aggiungi un proprietario.
  4. Fornisci l'indirizzo email del tuo account di servizio come proprietario delegato. Puoi trovare l'indirizzo email del tuo account di servizio in due punti:
    • Nel campo client_email della chiave privata JSON che hai scaricato quando hai creato il tuo progetto.
    • Nella colonna ID account di servizio della visualizzazione Account di servizio in Developers Console.
    L'indirizzo email ha un formato simile al seguente:
    my-service-account@project-name.google.com.iam.gserviceaccount.com
    Ad esempio: my-service-account@test-project-42.google.com.iam.gserviceaccount.com

Ottenere un token di accesso

Ogni chiamata all'API Indexing deve essere autenticata con un token OAuth che ricevi in cambio della tua chiave privata. Ogni token è valido per un determinato periodo di tempo. Google mette a disposizione librerie client delle API per ottenere token OAuth per una serie di linguaggi.

Requisiti

Quando invii una richiesta all'API Indexing, la richiesta deve:

  1. Utilizzare https://www.googleapis.com/auth/indexing come ambito.
  2. Utilizzare uno degli endpoint descritti in Utilizzo dell'API.
  3. Includere il token di accesso all'account di servizio.
  4. Definire il corpo della richiesta come descritto in Utilizzo dell'API.

Esempi

I seguenti esempi mostrano come ottenere un token di accesso OAuth.

Python

Permette di ottenere un token OAuth utilizzando la libreria client dell'API di Google per 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

Permette di ottenere un token OAuth utilizzando la libreria client dell'API per 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

Permette di ottenere un token OAuth utilizzando la libreria client dell'API per 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

Permette di ottenere un token OAuth utilizzando la libreria client per 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);
  });
});

Oltre a mostrare come ottenere un token, questi esempi illustrano dove poter aggiungere il corpo del messaggio della richiesta. Per informazioni sui tipi di chiamate che puoi effettuare e sulla struttura del corpo dei messaggi per tali chiamate, consulta la sezione Utilizzo dell'API.