Prerequisiti per l'API Indexing

Prima di poter iniziare a utilizzare l'API Indexing, ci sono alcune cose da fare, se non le hai già fatte, 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 di impostazioni e informazioni relative all'accesso all'API a cui darai un nome e registra la tua applicazione.

Per iniziare a usare l'API Indexing devi prima utilizzare lo strumento di configurazione, che ti guida attraverso la creazione di un progetto nella console API di Google, attivando l'API e creando le credenziali.

Creare un account di servizio

  1. Apri la pagina Account di servizio. Se richiesto, seleziona un progetto.
  2. Fai clic su add 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 add Crea chiave.
  5. Nel riquadro laterale che viene visualizzato, seleziona il formato della chiave: si consiglia di usare JSON.
  6. Fai clic su Crea. Viene generata e scaricata sul tuo computer una nuova coppia di chiave pubblica/privata, che sarà l'unica copia esistente. Per informazioni su come memorizzare la chiave in sicurezza, consulta la sezione Gestire le chiavi degli account di servizio.
  7. Fai clic su Chiudi nella finestra di dialogo Chiave privata salvata nel computer, quindi fai clic su Fine per tornare alla tabella degli account di servizio.

I passaggi che seguono sono necessari soltanto se vuoi concedere l'autorizzazione per tutto il dominio di G Suite all'account di servizio.

  1. Individua l'account di servizio appena creato nella tabella. Nella sezione Azioni, fai clic su more_vert, quindi su Modifica.
  2. Nei dettagli dell'account di servizio, fai clic su expand_more Mostra delega a livello di dominio, quindi assicurati che la casella di controllo Abilita delega su tutto il dominio G Suite sia selezionata.
  3. Se non hai ancora configurato la schermata del consenso OAuth dell'app, devi farlo per poter attivare la delega a livello di dominio. Segui le istruzioni sullo schermo per configurare la schermata del consenso OAuth, quindi ripeti i passaggi precedenti e riseleziona la casella di controllo.
  4. Fai clic su Salva per aggiornare l'account di servizio, quindi torna alla tabella degli account di servizio. Viene mostrata una nuova colonna, Delega a livello di dominio. Fai clic su Visualizza ID client per ottenere e prendere nota dell'ID client.

Verificare la proprietà del sito in Search Console

In questo passaggio dovrai verificare di avere il controllo della tua proprietà web.

Per verificare la proprietà del tuo sito:

  1. Segui i passaggi consigliati per verificare la tua proprietà.
  2. Dopo aver verificato la tua proprietà, apri Search Console.
  3. Fai clic sulla proprietà verificata.
  4. Seleziona i Dettagli di verifica dall'icona a forma di ingranaggio delle Impostazioni accanto alla proprietà verificata.
  5. Nella sezione Proprietari verificati, fai clic su Aggiungi un proprietario.
  6. Aggiungi l'indirizzo email del tuo account di servizio come proprietario della proprietà. 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 nella Developer Console.

    L'indirizzo email ha un formato simile al seguente:

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

    Ad esempio, "il-mio-account-servizio@test-project-42.google.com.iam.gserviceaccount.com".

Ottenere un token di accesso

Per chiamare l'API Indexing, la chiamata deve essere autenticata con un token OAuth che si riceve in cambio della propria chiave privata. Google fornisce librerie client di API per ottenere token OAuth per un certo numero di lingue.

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. 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 di 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 dei corpi dei messaggi per tali chiamate, consulta la sezione Usare l'API.