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. add 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. İşlemi 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 Et'i 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. add 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 ve ardından hizmet hesapları tablosuna dönmek için Tamam'ı tıklayın.

Aşağıdaki adımlar hizmet hesabına yalnızca G Suite alan adı genelinde izin vermek istiyorsanız gereklidir.

  1. Yeni oluşturulan hizmet hesabını tabloda bulun. Eylemler'in altında more_vert ve ardından Düzenle'yi tıklayın.
  2. Hizmet hesabı bilgilerinde expand_more Alan adı genelinde yetkiyi göster'i tıklayın ve ardından G Suite Alanı Genelinde Yetkiyi Etkinleştir onay kutusunun seçili olduğundan emin olun.
  3. Uygulamanızın OAuth izin ekranını henüz yapılandırmadıysanız alan adı genelinde yetkiyi etkinleştirmeden önce bunu yapmalısınız. OAuth izin ekranını yapılandırmak için ekrandaki talimatları uygulaynı, ardından yukarıdaki adımları tekrarlayın ve onay kutusunu yeniden işaretleyin.
  4. Hizmet hesabını güncellemek için Kaydet'i tıklayın ve hizmet hesapları tablosuna geri dönün. Alan adı genelinde yetki isminde yeni bir sütun görünecektir. Müşteri kimliğini edinmek ve bunu not almak için Müşteri Kimliğini Görüntüle'yi tıklayın.

Search Console'da sitenin sahibi olduğunuzu doğrulama

Bu adımda, web mülkünüzün üzerinde kontrol sahibi olduğunuzu doğrulayacaksınız.

Sitenizin sahibi olduğunuzu doğrulamak için:

  1. Mülkünüzün sahibi olduğunuzu doğrulamak için önerilen adımları uygulayın.
  2. Mülkünüz doğrulandıktan sonra Search Console'u açın.
  3. Doğrulanmış mülkünüzü tıklayın.
  4. Doğrulanmış mülkünüzün yanındaki Ayarlar dişli simgesinden Doğrulama ayrıntıları'nı seçin.
  5. Doğrulanmış sahipler bölümünün altında Sahip ekle'yi tıklayın.
  6. Hizmet hesabı e-posta adresinizi mülkün sahibi olarak ekleyin. Hizmet hesabı e-posta adresinizi bulabileceğiniz iki yer vardır:
    • Projenizi oluştururken indirdiğiniz JSON özel anahtarındaki client_email alanı.
    • Play Console'daki Hizmet Hesapları görünümünün Hizmet hesabı kimliği sütunu.

    E-posta adresi, aşağıdakine benzer bir biçime sahiptir:

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

    Örneğin, "my-service-account@test-project-42.google.com.iam.gserviceaccount.com".

Erişim jetonu alma

Dizine Ekleme API'sine çağrı gönderebilmeniz için, gizli anahtarınız karşılığında aldığınız bir OAuth jetonu ile çağrının kimliğinin doğrulanması gerekir. Google, çeşitli dillerde OAuth jetonları alabileceğiniz API istemci kitaplıkları sağlar.

Şartlar

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

  1. Kapsam olarak https://www.googleapis.com/auth/indexing kullanmalıdır.
  2. API'yi kullanma bölümünde belirtilen uç noktalardan birini kullanmalı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. 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.