Требования для Indexing API

Перед началом использования Indexing API необходимо выполнить следующие действия:

Создание проекта для вашего клиента

Прежде чем отправлять запросы к Indexing API, сообщите Google о клиенте и активируйте доступ к API. Для этого в Google API Console создайте проект (набор настроек и данных о доступе к API под общим именем) и зарегистрируйте приложение.

Перед началом работы с Indexing API нужно выполнить настройку в специальном инструменте. С его помощью вы сможете шаг за шагом создать проект в Google API Console и учетные данные, а также включить API.

Создание сервисного аккаунта

  1. Откройте страницу Сервисные аккаунты. При необходимости выберите проект.
  2. Нажмите add Создать сервисный аккаунт, а затем введите название и описание аккаунта. Вы можете оставить идентификатор, созданный автоматически, или придумать свой собственный. Указав нужную информацию, нажмите Создать.
  3. Задавать настройки в разделе Права доступа на уровне сервисного аккаунта не обязательно. Нажмите Продолжить.
  4. Когда откроется страница Предоставление пользователям доступа к сервисному аккаунту, прокрутите ее вниз до раздела Создать ключ и нажмите кнопку add Создать ключ.
  5. На появившейся боковой панели выберите формат ключа. Рекомендуемый вариант – JSON.
  6. Нажмите Создать. Будет создана единственная пара ключей (открытый и закрытый), которая затем будет скачана на ваш компьютер. Подробнее о том, как безопасно хранить ключи и управлять доступом к ним
  7. Выберите Закрыть в диалоговом окне Закрытый ключ скачан, а затем нажмите Готово, чтобы вернуться к таблице своих сервисных аккаунтов.

Описанные далее действия нужно выполнять только в том случае, если вы хотите предоставить сервисному аккаунту доступ к пользовательским данным в домене G Suite.

  1. Найдите свой новый сервисный аккаунт в таблице. В столбце Действия нажмите на значок с тремя точками more_vert и выберите Изменить.
  2. На странице со сведениями о сервисном аккаунте нажмите expand_more Показать делегирование доступа к данным в домене и убедитесь, что установлен флажок Включить делегирование доступа к данным в домене G Suite.
  3. Чтобы включить делегирование, необходимо будет задать настройки в окне запроса доступа OAuth, если вы этого ещё не сделали. Следуйте инструкциям на экране, а затем повторите предыдущие шаги и снова установите указанный выше флажок.
  4. Нажмите Сохранить и вернитесь к таблице сервисных аккаунтов. Вы увидите в ней новый столбец – Делегирование доступа к данным в домене. Нажмите Просмотреть идентификатор клиента и запишите или сохраните соответствующий идентификатор.

Как подтвердить право собственности на сайт в Search Console

Следуя инструкциям в этом разделе, вы подтвердите, что владеете своим веб-ресурсом.

Как подтвердить право собственности на сайт

  1. Выполните эти инструкции.
  2. После подтверждения откройте Search Console.
  3. Нажмите на подтвержденный ресурс.
  4. Выберите Информация о подтверждении, нажав на значок настроек рядом с ресурсом.
  5. В разделе Подтвержденные владельцы нажмите Добавить владельца.
  6. Укажите для нового владельца адрес электронной почты своего сервисного аккаунта. Где можно найти этот адрес:
    • в поле client_email в закрытом ключе JSON, скачанном вами при создании проекта;
    • в столбце Идентификатор сервисного аккаунта в разделе "Сервисные аккаунты" в Developer Console.

    Адрес электронной почты должен выглядеть приблизительно так:

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

    Пример: moy-servisniy-akkaunt@testoviy-proekt-42.google.com.iam.gserviceaccount.com.

Получение токена доступа

Для обращения к Indexing API необходимо пройти аутентификацию с помощью токена OAuth, который вам предоставляют в обмен на секретный ключ. Клиентские библиотеки API от Google позволяют получать токены OAuth для различных языков.

Требования

Отправляя запросы к Indexing API, соблюдайте следующие требования:

  1. Указывайте https://www.googleapis.com/auth/indexing в качестве области действия.
  2. Используйте только те конечные точки, которые указаны в разделе Использование API.
  3. Включайте в запросы токен доступа к сервисному аккаунту.
  4. Опишите тело запроса согласно требованиям в разделе Использование API.

Примеры

В примерах ниже показаны способы получения токена доступа OAuth.

Python

Получение токена OAuth с помощью клиентской библиотеки API Google для 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

Получение токена OAuth с помощью клиентской библиотеки API Google для 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

Получение токена OAuth с помощью клиентской библиотеки API Google для 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

Получение токена OAuth с помощью клиентской библиотеки для 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);
  });
});

В этих примерах не только показана процедура получения токена, но и указано, где можно разместить тело сообщения запроса. Узнать о типах запросов и структуре тела их сообщений можно из статьи Использование API.

Оставить отзыв о...

Текущей странице