Dizine Ekleme API'sini kullanmanın ön koşulları

Dizine Ekleme API'sini kullanmaya başlamadan önce, henüz yapmadıysanız yapmanız gereken birkaç şey vardır:

İstemciniz için proje oluşturma

Dizine Ekleme API'sine istek gönderebilmeniz için öncelikle Google'a istemcinizden bahsetmeniz ve API'ye erişimi etkinleştirmeniz gerekir. Bunun için, Google API Konsolu'nu kullanarak proje (ayarlar ve API erişim bilgilerinin adlandırılmış bir koleksiyonu) oluşturur ve uygulamanızı kaydedersiniz.

Dizine Ekleme API'sini kullanmaya başlamak için önce kurulum aracını kullanmanız gerekir. Bu araç, Google API Konsolu'nda proje oluşturma, API'yi etkinleştirme ve kimlik bilgileri oluşturma konusunda size rehberlik eder.

Hizmet hesabı oluşturma

  1. Hizmet hesapları sayfasını açın. İstenirse bir proje seçin.
  2. Hizmet Hesabı Oluştur'u tıklayın, hizmet hesabı için bir ad ve açıklama girin. Varsayılan hizmet hesabı kimliğini kullanabilir veya farklı, benzersiz bir tane seçebilirsiniz. Tamamladıktan sonra Oluştur'u tıklayın.
  3. Sonraki Hizmet hesabı izinleri (isteğe bağlı) bölümü gerekli değildir. Devam'ı tıklayın.
  4. Kullanıcıların bu hizmet hesabına erişmelerine izin ver ekranında, Anahtar oluştur bölümüne gidin. Anahtar oluştur'u tıklayın.
  5. Görüntülenen yan panelde anahtar biçimini seçin: JSON önerilir.
  6. Oluştur'u tıklayın. Herkese açık/özel yeni anahtar çiftiniz oluşturulur ve makinenize indirilir; bu anahtarın tek kopyası olarak işlev görür. Güvenli şekilde nasıl depolanacağını öğrenmek için Hizmet hesabı anahtarlarını yönetme konusuna bakın.
  7. Özel anahtar bilgisayarınıza kaydedildi iletişiminde Kapat'ı tıklayın. Ardından hizmet hesapları tablosuna dönmek için Tamam'ı tıklayın.

Hizmet hesabınızı site sahibi olarak ekleme

Hizmet hesabınızı site sahibi olarak eklemek için:

  1. Öncelikle Search Console'u kullanarak sitenin sahibi olduğunuzu kanıtlayın, ardından
  2. Hizmet hesabınızı site sahibi olarak ekleyin.

1. Sitenin sahibi olduğunuzu kanıtlayın

Search Console'u kullanarak sitenin sahibi olduğunuzu doğrulayın. Search Console'un desteklediği herhangi bir doğrulama yöntemini kullanabilirsiniz. Sitenizi temsil etmek için bir alan mülkü (example.com) veya URL öneki mülkü (https://example.com veya https://example.com/some/path/) oluşturabilirsiniz (sitelerin Search Console'da mülkler olarak adlandırıldığını unutmayın).

2. Hizmet hesabınıza sahip durumu verin

Daha sonra hizmet hesabınızı (yetki verilmiş) site sahibi olarak ekleyin:

  1. Search Console'u açın.
  2. Sahipliğini doğruladığınız mülkü tıklayın.
  3. Doğrulanmış sahip listesinde, Sahip ekle'yi tıklayın.
  4. Yetki verilmiş sahip olarak hizmet hesabı e-postanızı sağlayın. Hizmet hesabı e-posta adresinizi bulabileceğiniz iki yer vardır:
    • Projenizi oluştururken indirdiğiniz JSON özel anahtarındaki client_email alanı.
    • Google Cloud Console'daki Hizmet Hesapları görünümünün Hizmet hesabı kimliği sütunu.
    E-posta adresinin biçimi şu şekildedir:
    my-service-account@project-name.google.com.iam.gserviceaccount.com
    Örneğin: hizmet-hesabim@test-projesi-42.google.com.iam.ghizmethesabi.com

Erişim jetonu alma

Dizine Ekleme API'sine yapılan her çağrının kimliği, özel anahtarınız karşılığında aldığınız OAuth jetonuyla doğrulanmalıdır. Her jeton belirli bir süre için geçerlidir. Google, çeşitli dillerde OAuth jetonları alabileceğiniz API istemci kitaplıkları sağlar.

Şartlar

Dizine Ekleme API'sine istek gönderirken, isteğinizde:

  1. Kapsam olarak https://www.googleapis.com/auth/indexing adresi kullanılmalıdır.
  2. API'yi kullanma bölümünde belirtilen uç noktalardan biri kullanılmalıdır.
  3. Hizmet hesabı erişim jetonunu içermelidir.
  4. İsteğin gövde bölümünü, API'yi kullanma bölümünde anlatıldığı şekilde tanımlamalıdır.

Örnekler

Aşağıdaki örneklerde, OAuth erişim jetonunun nasıl alınacağı gösterilmektedir:

Python

Python için Google API İstemci Kitaplığı'nı kullanarak OAuth jetonu alır:

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

Java için API İstemci Kitaplığı'nı kullanarak OAuth jetonu alır:

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

PHP için API İstemci Kitaplığı'nı kullanarak OAuth jetonu alır:

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

Node.js İstemci Kitaplığı'nı kullanarak OAuth jetonu alır:

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

Bu örnekler, jetonun nasıl alınacağını göstermenin yanı sıra istek mesajının gövde bölümünü nereye ekleyebileceğinizi de göstermektedir. Yapabileceğiniz çağrı türleri ve bu çağrıların mesaj gövdelerinin yapısı hakkında bilgi edinmek için API'yi kullanma bölümüne bakın.