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 API Google 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 alat 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 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 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.

Menambahkan akun layanan sebagai pemilik situs

Untuk menambahkan akun layanan sebagai pemilik situs:

  1. Pertama-tama, buktikan bahwa Anda pemilik situs melalui Search Console, lalu
  2. Tambahkan akun layanan Anda sebagai pemilik.

1. Buktikan bahwa Anda pemilik situs

Verifikasi kepemilikan situs menggunakan Search Console. Anda dapat menggunakan metode verifikasi apa pun yang didukung oleh Search Console. Anda dapat membuat Properti domain (example.com) atau Properti awalan URL (https://example.com atau https://example.com/some/path/) untuk mewakili situs Anda (perhatikan bahwa situs disebut properti di Search Console).

2. Berikan status pemilik ke akun layanan Anda

Lalu, tambahkan akun layanan Anda sebagai pemilik situs (yang didelegasikan):

  1. Buka Search Console.
  2. Klik properti yang ingin diverifikasi kepemilikannya.
  3. Di daftar Pemilik terverifikasi, klik Tambahkan pemilik.
  4. Berikan email akun layanan Anda sebagai pemilik yang didelegasikan. Anda dapat menemukan alamat email akun layanan di dua tempat:
    • Kolom client_email di kunci pribadi JSON yang Anda download saat Anda membuat project.
    • Kolom ID akun layanan dari tampilan Akun Layanan di Konsol Google Cloud.
    Alamat email memiliki format seperti ini:
    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

Setiap panggilan ke Indexing API harus diautentikasi dengan token OAuth yang Anda peroleh untuk mendapatkan kunci pribadi. Setiap token dapat digunakan dalam jangka waktu tertentu. Google menyediakan library klien API guna 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 cakupan.
  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 as a JSON string.
# 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.