Voraussetzungen für die Indexing API

Bevor Sie die Indexing API verwenden, müssen Sie einige Schritte ausführen, falls Sie das noch nicht getan haben:

Projekt für den Client erstellen

Bevor Sie Anfragen an die Indexing API senden können, müssen Sie Google über Ihren Client informieren und den Zugriff auf die API aktivieren. Verwenden Sie dazu die Google API Console, um ein Projekt zu erstellen und um Ihre Anwendung zu registrieren. Bei einem Projekt handelt es sich um eine mit einem Namen versehene Sammlung von Einstellungen und Informationen zum API-Zugriff.

Um die Indexing API verwenden zu können, müssen Sie zuerst mithilfe des Einrichtungstools ein Projekt in der Google API Console erstellen. Damit wird die API aktiviert und Anmeldedaten erzeugt.

Dienstkonto erstellen

  1. Öffnen Sie die Seite für Dienstkonten. Wählen Sie ein Projekt aus, wenn Sie dazu aufgefordert werden.
  2. Klicken Sie auf Dienstkonto erstellen.
  3. Geben Sie im Fenster Dienstkonto erstellen einen Namen für das Dienstkonto ein und wählen Sie Neuen privaten Schlüssel bereitstellen aus. Wenn Sie dem Dienstkonto eine domainweite Berechtigung für G Suite erteilen möchten, wählen Sie auch Domainweite G Suite-Delegation aktivieren aus. Klicken Sie anschließend auf Speichern.

Ihr neues öffentliches/privates Schlüsselpaar wird generiert und auf Ihren Computer heruntergeladen. Dies ist die einzige Kopie dieses Schlüssels. Es liegt in Ihrer Verantwortung, ihn sorgfältig aufzubewahren.

Inhaberschaft der Website in der Search Console bestätigen

In diesem Schritt bestätigen Sie, dass Sie die Kontrolle über Ihre Web-Property haben.

So bestätigen Sie die Inhaberschaft Ihrer Website:

  1. Führen Sie die empfohlenen Schritte zur Bestätigung der Inhaberschaft Ihrer Web-Property aus.
  2. Öffnen Sie nach der Bestätigung Ihrer Web-Property die Search Console.
  3. Klicken Sie auf Ihre bestätigte Web-Property.
  4. Wählen Sie im Einstellungsbereich neben Ihrer bestätigten Web-Property die Option Überprüfungsdetails aus.
  5. Klicken Sie unter Bestätigte Inhaber auf Inhaber hinzufügen.
  6. Fügen Sie der Property die E-Mail-Adresse Ihres Dienstkontos als Inhaber hinzu. Sie können die E-Mail-Adresse Ihres Dienstkontos an zwei Stellen finden:
    • Im Feld client_email im privaten JSON-Schlüssel, den Sie beim Erstellen Ihres Projekts heruntergeladen haben.
    • In der Spalte Dienstkonto-ID der Dienstkonten-Ansicht in der Developer Console.

    Die E-Mail-Adresse hat ungefähr folgendes Format:

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

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

Zugriffstoken anfordern

Der Aufruf der Indexing API muss mit einem OAuth-Token authentifiziert werden. Diesen erhalten Sie im Austausch gegen Ihren privaten Schlüssel. Google bietet API-Clientbibliotheken an, über die OAuth-Token für unterschiedliche Sprachen angefordert werden können.

Anforderungen

Beim Versenden einer Anfrage zur Indexing API muss diese folgende Voraussetzungen erfüllen:

  1. Als Bereich muss https://www.googleapis.com/auth/indexing verwendet werden.
  2. Einer der unter API verwenden beschriebenen Endpunkte muss verwendet werden.
  3. Der Dienstkonto-Zugriffstoken muss enthalten sein.
  4. Der Hauptteil der Anfrage muss wie in API verwenden beschrieben definiert sein.

Beispiele

In den folgenden Beispielen wird erläutert, wie Sie ein OAuth-Zugriffstoken erhalten:

Python

Ruft ein OAuth-Token mithilfe der Google API-Clientbibliothek für Python ab:

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

Ruft ein OAuth-Token mithilfe der API-Clientbibliothek für Java ab:

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

Ruft ein OAuth-Token mithilfe der API-Clientbibliothek für PHP ab:

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

Ruft ein OAuth-Token mithilfe der Node.js-Clientbibliothek ab:

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);
  });
});

Diese Beispiele zeigen nicht nur, wie Sie ein Token erhalten, sondern auch, wo Sie den Hauptteil der Anfragenachricht hinzufügen können. Informationen zu den Arten von Aufrufen, die Sie durchführen können, und zur Struktur der Nachrichtentexte für diese Aufrufe finden Sie unter API verwenden.

Feedback geben zu...