Prasyarat untuk Indexing API

Sebelum Anda mulai menggunakan Indexing API, ada beberapa hal yang perlu dilakukan, jika Anda belum melakukannya:

Membuat project untuk klien Anda

Agar dapat mengirim permintaan ke Indexing API, Anda perlu memberi tahu Google tentang klien dan mengaktifkan akses ke API. Caranya adalah dengan menggunakan Konsol Google API untuk membuat project, yaitu kumpulan bernama yang terdiri dari setelan dan informasi akses API, dan mendaftarkan aplikasi Anda.

Untuk mulai menggunakan Indexing API, pertama-tama Anda harus menggunakan fitur penyiapan, yang memandu Anda menyelesaikan pembuatan project di Konsol Google API, mengaktifkan API, dan membuat kredensial.

Membuat akun layanan

  1. Buka halaman Akun layanan. Jika diminta, pilih sebuah project.
  2. Klik add Buat Akun Layanan, masukkan nama dan deskripsi untuk akun layanan. Anda dapat menggunakan ID akun layanan default, atau memilih ID yang berbeda dan unik. Setelah selesai, klik Buat.
  3. Bagian Izin akun layanan (opsional) yang ditampilkan setelahnya tidak diperlukan. Klik Lanjutkan
  4. Pada layar Beri pengguna akses ke akun layanan ini, scroll ke bawah ke bagian Buat kunci. Klik add Buat kunci.
  5. Di panel samping yang ditampilkan, pilih format untuk kunci Anda: JSON direkomendasikan.
  6. Klik Buat. Pasangan kunci umum/pribadi baru Anda dibuat dan didownload ke komputer, dan berfungsi sebagai satu-satunya salinan dari kunci ini. Untuk informasi cara menyimpannya dengan aman, lihat Mengelola kunci akun layanan.
  7. Klik Tutup pada dialog Kunci pribadi disimpan ke komputer Anda, lalu klik Selesai untuk kembali ke tabel akun layanan.

Langkah-langkah berikut hanya diperlukan jika Anda ingin memberikan izin seluruh domain G Suite ke akun layanan.

  1. Temukan akun layanan yang baru dibuat pada tabel. Di bagian Tindakan, klik more_vert lalu Edit.
  2. Pada detail akun layanan, klik expand_more Tampilkan delegasi seluruh domain, lalu pastikan kotak Aktifkan Delegasi Seluruh Domain G Suite dicentang.
  3. Jika belum mengonfigurasi layar persetujuan OAuth aplikasi Anda, Anda harus melakukannya agar dapat mengaktifkan delegasi seluruh domain. Ikuti petunjuk di layar untuk mengonfigurasi layar persetujuan OAuth, lalu ulangi langkah-langkah di atas dan centang kembali kotak centang.
  4. Klik Simpan untuk memperbarui akun layanan, dan kembali ke tabel akun layanan. Kolom baru, Delegasi seluruh domain, akan muncul. Klik Lihat Client ID, untuk mendapatkan dan mencatat client ID.

Memverifikasi kepemilikan situs di Search Console

Pada langkah ini, Anda akan memverifikasi bahwa Anda memegang kendali atas properti web Anda.

Untuk memverifikasi kepemilikan situs Anda:

  1. Ikuti langkah-langkah yang direkomendasikan untuk memverifikasi kepemilikan properti.
  2. Setelah properti Anda diverifikasi, buka Search Console.
  3. Klik properti terverifikasi Anda.
  4. Pilih Detail verifikasi dari ikon roda gigi Setelan di samping properti terverifikasi Anda.
  5. Di bagian Pemilik terverifikasi, klik Tambahkan pemilik.
  6. Tambahkan alamat email akun layanan Anda sebagai pemilik ke properti tersebut. Alamat email akun layanan dapat ditemukan di dua tempat:
    • Kolom client_email pada kunci pribadi JSON yang Anda download saat membuat project.
    • Kolom ID akun layanan pada tampilan Akun Layanan di Developer Console.

    Alamat email menggunakan format seperti berikut:

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

    Misalnya, "my-service-account@test-project-42.google.com.iam.gserviceaccount.com".

Mendapatkan token akses

Untuk memanggil Indexing API, panggilan harus diautentikasi dengan token OAuth yang Anda dapatkan sebagai penukar kunci pribadi Anda. Google menyediakan library klien API untuk mendapatkan token OAuth untuk sejumlah bahasa.

Persyaratan

Saat mengirim permintaan ke Indexing API, permintaan Anda harus:

  1. Menggunakan https://www.googleapis.com/auth/indexing sebagai cakupannya.
  2. Menggunakan salah satu endpoint yang dijelaskan dalam Menggunakan API.
  3. Menyertakan token akses akun layanan.
  4. Menentukan isi permintaan seperti yang dijelaskan dalam Menggunakan API.

Contoh

Contoh berikut menunjukkan cara mendapatkan token akses OAuth:

Python

Mendapatkan token OAuth menggunakan Library Klien Google API untuk 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

Mendapatkan token OAuth menggunakan Library Klien API untuk 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

Mendapatkan token OAuth menggunakan Library Klien API untuk 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

Mendapatkan token OAuth menggunakan Library Klien 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);
  });
});

Selain menunjukkan cara mendapatkan token, contoh tersebut menunjukkan tempat Anda dapat menambahkan bagian isi pesan permintaan. Untuk informasi tentang jenis panggilan yang dapat Anda buat dan struktur bagian isi pesan untuk panggilan tersebut, lihat Menggunakan API.