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
- Hizmet hesabı oluşturma
- Hizmet hesabınızı site sahibi olarak ekleme
- Erişim jetonu alma
İ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
- Hizmet hesapları sayfasını açın. İstenirse bir proje seçin.
- 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.
- Sonraki Hizmet hesabı izinleri (isteğe bağlı) bölümü gerekli değildir. Devam'ı tıklayın.
- 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.
- Görüntülenen yan panelde anahtar biçimini seçin: JSON önerilir.
- 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.
- Ö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:
- Öncelikle Search Console'u kullanarak sitenin sahibi olduğunuzu kanıtlayın, ardından
- 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:
- Search Console'u açın.
- Sahipliğini doğruladığınız mülkü tıklayın.
- Doğrulanmış sahip listesinde, Sahip ekle'yi tıklayın.
- 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.
my-service-account@project-name.google.com.iam.gserviceaccount.com
Örneğin: hizmet-hesabim@test-projesi-42.google.com.iam.ghizmethesabi.com - Projenizi oluştururken indirdiğiniz JSON özel anahtarındaki
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:
- Kapsam olarak
https://www.googleapis.com/auth/indexing
adresi kullanılmalıdır. - API'yi kullanma bölümünde belirtilen uç noktalardan biri kullanılmalıdır.
- Hizmet hesabı erişim jetonunu içermelidir.
- İ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.