Geliştirici Kılavuzu: JavaScript

Blogger Data API, istemci uygulamaların Blogger içeriğini Google Veri API'sı feed'leri biçiminde görüntülemesine ve güncellemesine olanak tanır.

İstemci uygulamanız, yeni blog yayınları oluşturmak, mevcut blog yayınlarını düzenlemek veya silmek ve belirli ölçütlerle eşleşen blog yayınlarını sorgulamak için Blogger Data API'yi kullanabilir.

Bu dokümanda, Blogger Data API'nin özellikleri hakkında biraz arka planın yanı sıra JavaScript istemci kitaplığını kullanan temel Data API etkileşimlerine dair örnekler verilmiştir. Kitaplığın kullandığı temel protokol hakkında daha fazla bilgi edinmek istiyorsanız bu geliştirici kılavuzunun Protokol bölümünü inceleyin.

İçindekiler

Kitle

Bu doküman, Blogger ile etkileşim kurabilecek JavaScript istemci uygulamaları yazmak isteyen programcılar için hazırlanmıştır. JavaScript istemci kitaplığını kullanarak temel Data API etkileşimlerine dair bir dizi örnek sunar.

Blogger Data API referans bilgileri için Protokol başvuru kılavuzu'na bakın. Bu dokümanda, Google Veri API'leri protokolünün arkasındaki genel fikirleri ve JavaScript istemci kitaplığı tarafından kullanılan veri modeli ve kontrol akışını anladığınız varsayılmaktadır. Ayrıca JavaScript ile programlamayı bildiğiniz varsayılır.

İstemci kitaplığı tarafından sağlanan sınıflar ve yöntemler hakkında referans bilgileri için JavaScript istemci kitaplığı API referansı bölümüne bakın.

Bu belge sırayla okunacak şekilde tasarlanmıştır. Her örnek, daha önceki örnekler üzerine kurulmuştur.

Kullanım şartları

JavaScript istemci kitaplığını kullanırken Google JavaScript İstemci Kitaplığı Kullanım Şartları'na uymayı kabul edersiniz.

Desteklenen ortamlar hakkında

Şu anda yalnızca bir tarayıcıdaki web sayfasında çalışan JavaScript istemci uygulamalarını destekliyoruz. Şu anda Firefox 1.5 ve sonraki sürümler ile Internet Explorer 6.0 ve sonraki sürümleri desteklenmektedir.

JavaScript istemci kitaplığı, hizmetin sunucusuyla kurulan tüm iletişimi kapsar. Deneyimli bir JS geliştiricisiyseniz, "Peki aynı kaynak politikası ne olacak?" diye düşünüyor olabilirsiniz. JavaScript istemci kitaplığı, istemcinizin tarayıcı güvenlik modeliyle uyumluluğu korurken herhangi bir alandan Google Data API istekleri göndermesine olanak tanır.

Başlarken

JavaScript istemci uygulaması yazabilmeniz için öncelikle kitaplığı edinmek üzere bazı ayarlar yapmanız gerekir.

Blogger hesabı oluşturma

Test amacıyla bir Blogger hesabına kaydolmak isteyebilirsiniz. Blogger Google Hesaplarını kullanır. Dolayısıyla, zaten bir Google hesabınız varsa hazırsınız demektir.

Kitaplığı edinme

İstemcinizin istemci kitaplığını kullanabilmesi için öncelikle sunucudan istemci kitaplığı kodunu istemesi gerekir.

Google AJAX API yükleyicisini getirmek için HTML belgenizin <head> bölümünde bir <script> etiketi kullanarak başlayın:

<script type="text/javascript" src="https://www.google.com/jsapi"></script>

Yükleyiciyi getirdikten sonra Google Data API istemci kitaplığını edinmek için JavaScript kurulum kodunuzda, HTML belgenizin <head> bölümünden (veya HTML belgenizin <head> bölümünde <script> etiketi kullanılarak eklenmiş bir JavaScript dosyasından) çağrılması gereken aşağıdaki satırı kullanın:

google.load("gdata", "1.x");

google.load() öğesinin ikinci parametresi, JavaScript istemci kitaplığının istenen sürüm numarasıdır.Sürüm numaralandırma şemamız, Google Maps API tarafından kullanılana göre modellenmiştir. Aşağıda olası sürüm numaraları ve bunların ne anlama geldiği açıklanmaktadır:

"1"
Ana sürüm 1'in ikinciden sonuncuya kadar yapılan düzeltmesi.
"1.x"
Ana sürüm 1'in en son düzeltmesi.
"1.s"
Ana sürüm 1'in en son kararlı düzeltmesi. Geliştiricilerden aldığımız geri bildirimlere dayanarak zaman zaman istemci kitaplığının belirli bir sürümünün "kararlı" olduğunu bildiririz. Ancak, o sürümde en son özellikler bulunmayabilir.
"1.0", "1.1" vb.
Kitaplığın belirli bir ana ve alt düzeltme numarası içeren sürümü.

google.load() komutunu çağırdıktan sonra, yükleyiciye sayfanın yüklenmesi bitene kadar beklemesini söylemeniz ve ardından kodunuzu çağırmanız gerekir:

google.setOnLoadCallback(getMyBlogFeed);

Burada getMyBlogFeed(), bu belgenin ilerleyen bölümlerinde tanımladığımız bir işlevdir. <body> öğesine bir onload işleyici eklemek yerine bu yaklaşımı kullanın.

Blogger hizmeti için kimlik doğrulama

Blogger Veri API'sını kullanarak hem genel hem de özel yayınlara erişebilirsiniz. Herkese açık feed'ler herhangi bir kimlik doğrulaması gerektirmez ancak salt okunurdur. Blogları değiştirmek istiyorsanız özel feed'ler istemeden önce müşterinizin kimlik doğrulaması yapması gerekir.

JavaScript istemci kitaplığı, AuthSub kimlik doğrulama sistemini kullanır. Genel olarak Google Veri API'leriyle kimlik doğrulama hakkında daha fazla bilgi edinmek için kimlik doğrulama belgelerine bakın.

AuthSub proxy kimlik doğrulaması

AuthSub proxy kimlik doğrulaması, kullanıcılarının kimliklerini Google Hesaplarında doğrulaması gereken web uygulamaları tarafından kullanılır. Web sitesi operatörü ve istemci kodunun Blogger kullanıcısının kullanıcı adı ve şifresine erişimi yoktur. Bunun yerine istemci, istemcinin belirli bir kullanıcı adına işlem yapmasına olanak tanıyan özel AuthSub jetonları alır.

Web tabanlı bir JavaScript istemcisinin kimlik doğrulama işlemi sırasında neler olduğuna dair kısa bir genel bakışı burada bulabilirsiniz:

  1. İstemci uygulaması, istemci kitaplığı tarafından sağlanan google.accounts.user.login() yöntemini çağırarak hangi Google hizmetinin kullanılacağını belirten bir "kapsam" değeri iletir. Blogger için kapsam "http://www.blogger.com/feeds/" şeklindedir.
  2. İstemci kitaplığı, tarayıcıyı Google'ın "Erişim İsteği" sayfasına gönderir. Kullanıcı burada, hizmete giriş yapmak için kimlik bilgilerini girebilir.
  3. Kullanıcı başarıyla giriş yaparsa AuthSub sistemi, kimlik doğrulama jetonunu ileterek tarayıcıyı web istemcisinin URL'sine geri gönderir.
  4. JavaScript istemci kitaplığı, jetonu bir çerezde depolar ve kontrolü, istemci uygulamasının google.accounts.user.login() adlı işlevine döndürür.
  5. İstemci uygulaması daha sonra Blogger ile etkileşimde bulunan istemci kitaplığı yöntemlerini çağırdığında, istemci kitaplığı jetonu otomatik olarak tüm isteklere ekler.

Not: JavaScript istemci kitaplığının web tarayıcısında kimliği doğrulanmış Blogger isteklerinde bulunabilmesi için sayfanızın, sayfanızla aynı alanda barındırılan bir resim içermesi gerekir. Bu, tek pikselli şeffaf bir resim de dahil olmak üzere herhangi bir resim olabilir ancak sayfada bir resim olması gerekir. Resmin sayfanızda görünmesini istemiyorsanız resmi oluşturma alanının dışına konumlandırmak için <img> etiketinin style özelliğini kullanabilirsiniz. Örnek: style="position:absolute; top: -1000px;"

Giriş işlemini yapan istemci-uygulama kodunu burada bulabilirsiniz. Daha sonra başka bir koddan setupMyService() işlevini çağıracağız.

function logMeIn() {
  scope = "http://www.blogger.com/feeds/";
  var token = google.accounts.user.login(scope);
}

function setupMyService() {
  var myService =
    new google.gdata.blogger.BloggerService('exampleCo-exampleApp-1');
  logMeIn();
  return myService;
}

İpucu: Kullanıcıdan giriş işlemini manuel olarak başlatmasını istemek için bir giriş düğmesi veya başka bir kullanıcı giriş mekanizması sağlamanızı önemle tavsiye ederiz. Bunun yerine, kullanıcı etkileşimini beklemeden google.accounts.user.login() uygulamasını yükledikten hemen sonra çağırırsanız kullanıcının sayfanıza vardığında ilk gördüğü şey bir Google giriş sayfasıdır. Kullanıcı giriş yapmamaya karar verirse Google onu tekrar sayfanıza yönlendirmez. Dolayısıyla kullanıcı açısından bakıldığında kullanıcı sayfanızı ziyaret etmeye çalışmış ancak o sayfayı ziyaret etmiş ancak bir daha geri gönderilmemiştir. Bu senaryo, kullanıcılar için kafa karıştırıcı ve can sıkıcı olabilir. Bu belgedeki örnek kodunda, örneğin basit olması için yükleme işleminden hemen sonra google.accounts.user.login() öğesini çağıracağız. Ancak bu yaklaşım, gerçek istemci uygulamaları için önerilmez.

token adlı değişkenle herhangi bir işlem yapmanız gerekmediğini, istemci kitaplığının jetonu takip ederek bu işlemi yapmanıza gerek olmadığını unutmayın.

Not: Yeni bir BloggerService nesnesi oluşturduğunuzda istemci kitaplığı google.gdata.client.init() adlı bir yöntemi çağırır. Bu yöntem, istemcinin çalıştığı tarayıcının desteklenip desteklenmediğini kontrol eder. Bir hata olması durumunda istemci kitaplığı kullanıcıya bir hata mesajı gösterir. Bu tür hataları kendiniz halletmek istiyorsanız hizmeti oluşturmadan önce google.gdata.client.init(handleInitError) öğesini açıkça çağırabilirsiniz. Burada handleInitError() işlevi kullanılır. Bir başlatma hatası oluşursa işleviniz standart bir Hata nesnesi alır. Bu nesneyle istediğiniz her şeyi yapabilirsiniz.

Jeton, google.accounts.user.logout() yöntemini çağırarak iptal edene kadar geçerli kalır:

function logMeOut() {
  google.accounts.user.logout();
}

logout() yöntemini çağırmazsanız jetonu depolayan çerez, kullanıcı tarafından silinmediği sürece iki yıl geçerli olur. Çerez, tarayıcı oturumlarında saklanır. Böylece kullanıcı, tarayıcısını kapatıp yeniden açabilir ve müşterinize geri gelebilir. Kullanıcı, oturumu açık kalır.

Ancak oturum sırasında bir jetonun geçersiz olabileceği bazı olağan dışı durumlar vardır. Blogger bir jetonu reddederse istemciniz, mevcut jetonu içeren çerezi kaldırmak için logout() yöntemini çağırıp yeni, geçerli bir jeton almak üzere login() yöntemini tekrar çağırarak hata durumunu işlemelidir.

Çeşitli bağlamlarda yararlı bulabileceğiniz iki AuthSub yöntemi daha vardır:

  • google.accounts.user.checkLogin(scope), tarayıcının belirtilen kapsam için şu anda kimlik doğrulama jetonuna sahip olup olmadığını belirtir.
  • google.accounts.user.getInfo(), hata ayıklama kullanımı için mevcut jeton hakkında ayrıntılı bilgi sağlar.

Jeton yönetimi ve checkLogin() ile getInfo() hakkındaki bilgiler dahil olmak üzere AuthSub ile etkileşim kurmak için JavaScript'i kullanma hakkında ayrıntılı bilgi için JavaScript İstemci Kitaplığı ile "AuthSub" Kimlik Doğrulaması Kullanma dokümanını inceleyin.

Başa dön