Wymagania wstępne dotyczące interfejsu Indexing API

Zanim zaczniesz korzystać z interfejsu Indexing API, musisz wykonać kilka czynności:

Tworzenie projektu dla klienta

Aby móc wysyłać żądania do interfejsu Indexing API, musisz poinformować Google o swoim kliencie i aktywować dostęp do interfejsu API. W tym celu musisz użyć konsoli interfejsów API Google, by utworzyć projekt, czyli nazwany zbiór ustawień i informacji dostępowych interfejsu API, oraz zarejestrować swoją aplikację.

Aby rozpocząć korzystanie z interfejsu Indexing API, musisz najpierw użyć narzędzia do konfiguracji, które przeprowadzi Cię przez proces tworzenia projektu w konsoli interfejsów API Google, włączania interfejsu API i tworzenia danych logowania.

Tworzenie konta usługi

  1. Otwórz stronę Konta usługi. Jeśli pojawi się monit, wybierz projekt.
  2. Kliknij Utwórz konto usługi.
  3. W oknie Utwórz konto usługi wpisz nazwę konta usługi i wybierz Dostarcz nowy klucz prywatny. Jeśli chcesz przyznać kontu usługi uprawnienia obejmujące całą domenę G Suite, zaznacz też opcję Włącz przekazywanie dostępu w obrębie całej domeny G Suite. Następnie kliknij Zapisz.

Nowa para kluczy publicznych/prywatnych zostanie wygenerowana i pobrana na Twoje urządzenie. To jedyny egzemplarz tego klucza. Twoim obowiązkiem jest jego bezpieczne przechowywanie.

Weryfikowanie własności witryny w Search Console

Na tym etapie potwierdzisz, że kontrolujesz swoją usługę internetową.

Aby zweryfikować własność witryny:

  1. Wykonaj zalecane czynności umożliwiające zweryfikowanie własności usługi.
  2. Gdy usługa zostanie zweryfikowana, otwórz Search Console.
  3. Kliknij zweryfikowaną usługę.
  4. Kliknij ikonę koła zębatego obok zweryfikowanej usługi i wybierz Szczegóły weryfikacji.
  5. W sekcji Zweryfikowani właściciele kliknij Dodaj właściciela.
  6. Dodaj adres e-mail konta usługi jako właściciela usługi. Adres e-mail konta usługi znajdziesz w dwóch miejscach:
    • w polu client_email klucza prywatnego JSON pobranego podczas tworzenia projektu.
    • w kolumnie Identyfikator konta usługi w widoku Konta usługi w Konsoli Play.

    Adres e-mail ma format podobny do tego:

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

    Na przykład „my-service-account@test-project-42.google.com.iam.gserviceaccount.com”.

Uzyskiwanie tokena dostępu

Aby można było wywołać interfejs Indexing API, wywołanie musi być autoryzowane za pomocą tokena OAuth, który dostajesz w zamian za klucz prywatny. Google udostępnia biblioteki klienta interfejsu API, które umożliwiają uzyskanie tokenów w wielu językach.

Wymagania

Gdy przesyłasz żądanie do interfejsu Indexing API, Twoje żądanie musi:

  1. Używać zakresu https://www.googleapis.com/auth/indexing.
  2. Używać jednego z punktów końcowych opisanych w artykule Korzystanie z interfejsu API.
  3. Obejmować token dostępu konta usługi.
  4. Określać treść żądania zgodnie z opisem w artykule Korzystanie z interfejsu API.

Przykłady

Te przykłady pokazują, jak uzyskać token dostępu OAuth:

Python

Uzyskuje token dostępu OAuth, używając biblioteki klienta interfejsu API Google dla języka 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

Uzyskuje token dostępu OAuth, używając biblioteki klienta interfejsu API dla języka 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

Uzyskuje token dostępu OAuth, używając biblioteki klienta interfejsu API dla języka 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

Uzyskuje token dostępu OAuth, używając biblioteki klienta 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);
  });
});

Poza sposobem uzyskania tokena przykłady te pokazują też miejsce, w którym można dodać treść komunikatu żądania. Informacje o typach możliwych wywołań i strukturze treści komunikatów tych wywołań znajdziesz w artykule Korzystanie z interfejsu API.

Wyślij opinię na temat...