Blogger Data API, istemci uygulamalarının Blogger içeriğini Google Data API 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çütlere uyan blog yayınlarını sorgulamak için Blogger Veri API'sini kullanabilir.
Bu doküman, Blogger Data API'nin özellikleri hakkında bilgi vermenin yanı sıra JavaScript istemci kitaplığını kullanan temel Data API etkileşimlerine dair örnekler de sunar. Kitaplığın kullandığı temel protokol hakkında daha fazla bilgi edinmek istiyorsanız bu geliştirici kılavuzunun Protokol bölümüne bakın.
İçindekiler
Kitle
Bu doküman, Blogger ile etkileşime geçebilecek 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 sağlar.
Blogger Data API referans bilgileri için Protokol referans kılavuzuna bakın. Bu dokümanda, Google Data API'leri protokolünün temel fikirlerini ve JavaScript istemci kitaplığının kullandığı veri modelini ve kontrol akışını anladığınız varsayılmaktadır. Ayrıca JavaScript'te programlama yapabileceğiniz varsayılır.
İstemci kitaplığı tarafından sağlanan sınıflar ve yöntemler hakkında referans bilgiler için JavaScript istemci kitaplığı API referansı bölümüne bakın.
Bu doküman sırayla okunacak şekilde tasarlanmıştır. Her örnek, önceki örneklerin üzerine inşa edilmiştir.
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 tarayıcıda bir web sayfasında çalışan JavaScript istemci uygulamalarını destekliyoruz. Şu anda desteklenen tarayıcılar Firefox 1.5 ve sonraki sürümler ile Internet Explorer 6.0 ve sonraki sürümlerdir.
JavaScript istemci kitaplığı, hizmetin sunucusuyla yapılan tüm iletişimi yönetir. Deneyimli bir JS geliştiriciyseniz "Peki aynı kaynak politikası ne olacak?" diye düşünebilirsiniz. JavaScript istemci kitaplığı, istemcinizin tarayıcı güvenlik modeline uygun kalarak herhangi bir alandan Google Data API istekleri göndermesine olanak tanır.
Başlarken
JavaScript istemci uygulaması yazabilmeniz için kitaplığı edinmek üzere bazı ayarlar yapmanız gerekir.
Blogger hesabı oluşturma
Test amacıyla Blogger hesabına kaydolmanız önerilir. 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 istemcinin 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 aşağıdaki satırı kullanın. Bu satır, HTML belgenizin <head>
bölümünden (veya HTML belgenizin <head>
bölümünde bir <script>
etiketi kullanılarak dahil edilen bir JavaScript dosyasından) çağrılmalıdır:
google.load("gdata", "1.x");
google.load()
için ikinci parametre, JavaScript istemci kitaplığının istenen sürüm numarasıdır. Sürüm numaralandırma şemamız, Google Haritalar API'si tarafından kullanılan şemaya göre modellenmiştir. Olası sürüm numaraları ve bunların ne anlama geldiği aşağıda açıklanmıştır:
"1"
- 1 numaralı ana sürümün sondan ikinci düzeltmesi.
"1.x"
- 1 ana sürümünün en son düzeltmesi.
"1.s"
- 1 ana sürümünün en son kararlı düzeltmesi. Geliştiricilerden aldığımız geri bildirimler doğrultusunda, istemci kitaplığının belirli bir sürümünü zaman zaman "kararlı" olarak ilan ederiz. Ancak bu sürümde en yeni özellikler bulunmayabilir.
"1.0"
,"1.1
" vb.- Belirli bir ana ve alt düzeltme numarası içeren kitaplığın belirli bir sürümü.
google.load()
işlevini ç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 dokümanın sonraki bir bölümünde tanımlayacağımız bir işlevdir. <body>
öğesine onload
işleyici eklemek yerine bu yaklaşımı kullanın.
Blogger hizmetinde kimlik doğrulama
Blogger Data API'yi kullanarak hem herkese açık hem de özel feed'lere erişebilirsiniz. Herkese açık feed'ler için kimlik doğrulama gerekmez ancak bunlar salt okunurdur. Blogları değiştirmek istiyorsanız istemcinizin gizli feed'ler istemeden önce kimliğini doğrulaması 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 için kimlik doğrulama belgelerine bakın.
AuthSub proxy kimlik doğrulaması
AuthSub proxy kimlik doğrulaması, kullanıcılarının Google Hesaplarında kimliğini doğrulaması gereken web uygulamaları tarafından kullanılır. Web sitesi operatörü ve istemci kodu, Blogger kullanıcısının kullanıcı adına ve şifresine erişemez. Bunun yerine, istemci 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ış aşağıda verilmiştir:
- İstemci uygulaması, istemci kitaplığı tarafından sağlanan
google.accounts.user.login()
yöntemini çağırır ve yönteme, kullanılacak Google hizmetini belirten bir "scope" değeri iletir. Blogger için kapsam"http://www.blogger.com/feeds/"
'tür. - Müşteri kitaplığı, tarayıcıyı Google'ın "Erişim İsteği" sayfasına gönderir. Kullanıcı bu sayfada hizmete giriş yapmak için kimlik bilgilerini girebilir.
- Kullanıcı başarıyla giriş yaparsa AuthSub sistemi, kimlik doğrulama jetonunu ileterek tarayıcıyı web istemcisinin URL'sine geri gönderir.
- JavaScript istemci kitaplığı, jetonu bir çerezde depolar ve kontrolü,
google.accounts.user.login()
işlevini çağıran istemci uygulamasına döndürür. - İstemci uygulaması daha sonra Blogger ile etkileşime geçen istemci kitaplığı yöntemlerini çağırdığında istemci kitaplığı, jetonu tüm isteklere otomatik olarak ekler.
Not: JavaScript istemci kitaplığının bir web tarayıcısında kimliği doğrulanmış Blogger istekleri gönderebilmesi için sayfanızda, sayfanızla aynı alanda barındırılan bir resim bulunmalıdır. Tek piksel şeffaf resim de dahil olmak üzere herhangi bir resim olabilir ancak sayfada bir resim olmalıdır. Resmin sayfanızda görünmemesini istiyorsanız resmi oluşturma alanının dışına yerleştirmek için <img>
etiketinin style
özelliğini kullanabilirsiniz. Örneğin: style="position:absolute; top:
-1000px;"
Giriş yapma işlemini yöneten istemci uygulaması kodu aşağıda verilmiştir. setupMyService()
işlevini daha sonra başka bir koddan ç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 yükleme işleminden hemen sonra google.accounts.user.login()
işlevini çağırırsanız kullanıcı, sayfanıza geldiğinde ilk olarak bir Google giriş sayfası görür. Kullanıcı giriş yapmamaya karar verirse Google kullanıcıyı sayfanıza geri yönlendirmez. Bu nedenle, kullanıcı açısından bakıldığında sayfanızı ziyaret etmeye çalıştıkları ancak başka bir sayfaya yönlendirildikleri ve tekrar geri gönderilmedikleri anlaşılır. Bu durum kullanıcılar için kafa karıştırıcı ve can sıkıcı olabilir. Bu belgedeki örnek kodda, örneği basit tutmak için google.accounts.user.login()
işlevini yükleme işleminden hemen sonra çağıracağız ancak gerçek istemci uygulamaları için bu yaklaşımı önermeyiz.
token
adlı değişkenle ilgili herhangi bir işlem yapmanız gerekmez. Müşteri kitaplığı jetonu takip eder.
Not: Yeni bir BloggerService nesnesi oluşturduğunuzda istemci kitaplığı, istemcinin çalıştığı tarayıcının desteklenip desteklenmediğini kontrol eden google.gdata.client.init()
adlı bir yöntem çağırır. Hata varsa istemci kitaplığı kullanıcıya bir hata mesajı gösterir. Bu tür hataları kendiniz ele almak istiyorsanız hizmeti oluşturmadan önce handleInitError()
işleviniz olan google.gdata.client.init(handleInitError)
işlevini açıkça çağırabilirsiniz. Bir ilk başlatma hatası oluşursa işlevinize standart bir Hata nesnesi gönderilir. Bu nesneyle istediğinizi yapabilirsiniz.
Jeton, google.accounts.user.logout()
çağrısını yaparak iptal edene kadar geçerliliğini korur:
function logMeOut() { google.accounts.user.logout(); }
logout()
çağrılmazsa jetonu saklayan çerez, kullanıcı tarafından silinmediği sürece iki yıl boyunca geçerli kalır. Çerez, tarayıcı oturumları arasında saklanır. Böylece kullanıcı, tarayıcısını kapatıp tekrar açarak istemcinize geri dönebilir ve oturumu açık kalır.
Ancak, bir jetonun oturum sırasında geçersiz hale gelebileceği bazı olağan dışı durumlar vardır. Blogger bir jetonu reddederse istemciniz, mevcut jetonu içeren çerezi kaldırmak için logout()
'ü çağırarak ve ardından yeni ve geçerli bir jeton almak için login()
'ü tekrar çağırarak hata durumunu ele almalıdır.
Çeşitli bağlamlarda faydalı bulabileceğiniz iki AuthSub yöntemi daha vardır:
google.accounts.user.checkLogin(scope)
, tarayıcının şu anda belirli bir kapsam için kimlik doğrulama jetonuna sahip olup olmadığını belirtir.google.accounts.user.getInfo()
, hata ayıklama amacıyla mevcut jeton hakkında ayrıntılı bilgi sağlar.
Jeton yönetimi ve checkLogin()
ile getInfo()
hakkında bilgi de dahil olmak üzere AuthSub ile etkileşimde bulunmak için JavaScript kullanma hakkında ayrıntılı bilgi için JavaScript İstemci Kitaplığı ile "AuthSub" Kimlik Doğrulama belgesine bakın.