Google Veri Protokolü'nde Kimlik Doğrulama ve Yetkilendirme

Uyarı: Bu sayfa, Google'ın eski API'leri olan Google Veri API'leriyle ilgilidir. Bu sayfalar, çoğu yeni API'lerle değiştirilen Google Veri API'leri dizininde listelenen API'lerle ilgilidir. Belirli bir yeni API ile ilgili bilgi edinmek için yeni API'nin belgelerine bakabilirsiniz. Yeni bir API ile istekleri yetkilendirme hakkında bilgi için Google Hesaplarında Kimlik Doğrulama ve Yetkilendirme başlıklı makaleyi inceleyin.

Üçüncü taraf uygulamaları belirli etkinlik türleri için genellikle kullanıcının Google Hesabı'na sınırlı erişim gerektirir. Kullanıcı verilerinin kötüye kullanılmadığından emin olmak için tüm erişim istekleri hesap sahibi tarafından onaylanmalıdır. Erişim denetiminin kimlik doğrulama ve yetkilendirme olmak üzere iki bileşeni vardır.

Kimlik doğrulama hizmetleri, kullanıcıların uygulamanızda bir Google Hesabı kullanarak oturum açmalarına olanak tanır.

Yetkilendirme hizmetleri, kullanıcıların uygulamanıza Google uygulamalarında depoladığı verilere erişmelerini sağlar. Google, gizliliği son derece ciddiye almaktadır. Ayrıca bir kullanıcının verilerine erişim gerektiren tüm uygulamalar, kullanıcı tarafından yetkilendirilmelidir.

Kimlik doğrulama ve yetkilendirme hizmetleri genellikle toplu olarak yetkilendirme olarak adlandırılır.

Google API'leri için kimlik doğrulama ve yetkilendirme, üçüncü taraf uygulamalarının belirli etkinlik türlerinde kullanıcının Google hesabına sınırlı erişim elde etmesine olanak tanır. Bu dokümanda, kullanılabilen yetkilendirme mekanizmaları tanıtılmakta ve her birinin uygulamanız için ne sağlandığı açıklanmaktadır.

  • Google ile Oturum Açma, kullanıcıların sitenizde oturum açmak için Google kimlik bilgilerini kullanmasına izin vermenin basit bir yolunu sağlar. Farklı cihazlar arasında kolayca entegre edilebilen bir dizi araç içerir.
  • OAuth 2.0, tüm Google API'leri için bir yetkilendirme protokolüdür. OAuth 2.0, uygulamanızın doğrudan kriptografik olarak imzalanmasını zorunlu tutmak yerine güvenlik için SSL kullanır. Bu protokol uygulamanızın, bir kullanıcının Google Hesabı ile ilişkili verilere erişim isteğinde bulunmasına olanak tanır.
  • Login with OAuth 2.0 (OAuth 2.0 ile giriş yapın) (OpenID Connect), kullanıcıların kimliklerini Google hesaplarına giriş yaparak doğrular. Bu, OpenID'nin yerini almaktadır. OpenID kullanıcıları OAuth 2.0 ile Giriş'e geçmeyi planlamalıdır.

Uygulamanız bir gadget ise (iGoogle veya diğer OpenSocial kapsayıcılarında kullanılmak üzere) Cihazlar için kimlik doğrulama bölümüne bakın.

Not: Bu belgenin amacı, her bir kimlik doğrulama yöntemine genel bakış sağlamaktır. Her yöntem hakkında ayrıntılı bilgi için Google Hesabı Kimlik Doğrulama API'leri belgelerine bakın.

Google Hesapları API'larını kullanma hakkında görüşmek için Google Hesapları API Grubu'na da göz atın.

OAuth - web uygulamaları ve yüklü uygulamalar için yetkilendirme

Çoğu Google hizmeti, kullanıcı tarafından yetkilendirildiği sürece Takvim veya Dokümanlar verileri gibi kullanıcı tarafından oluşturulan verilere üçüncü taraf erişimi sunar. Bu özellik, kullanıcıların çeşitli uygulamaları için Google uygulamaları ile üçüncü taraf uygulamaları arasında veri alışverişi yapmasına olanak tanır.

Google, bir kullanıcının Google verilerine yetkilendirilmiş erişim elde etmek için OAuth'un iki sürümünü destekler: Hem web uygulamalarına hem de yüklü uygulamalara erişim sunan OAuth 1.0 ve OAuth 2.0.

Web ve yüklü uygulamalar için OAuth 2.0

Web uygulamaları veya yüklü uygulamalar, bir Google hesabıyla ilişkili verilere erişimi yetkilendirmek için yeni, basitleştirilmiş OAuth 2.0 protokolünü kullanabilir. OAuth 2.0'ı Google ile nasıl uygulamaya koyacağınıza dair ayrıntılar ve örnekler için OAuth 2.0 ile ilgili dokümanlarımıza bakın.

Web uygulamaları için OAuth 1.0

Bir Google Hesabı veya Google Apps Hesabı ile ilişkilendirilmiş verilere yetkili erişime ihtiyaç duyan web uygulamaları, Google'ın OAuth API uygulamasını kullanabilir. Örnekler de dahil olmak üzere web tabanlı uygulamalar için OAuth'u kullanma hakkında daha fazla bilgi edinmek üzere Web Uygulamaları için OAuth kılavuzunu veya bu dokümandaki genel bakışı inceleyin.

Yüklü uygulamalar için OAuth 1.0

Kullanıcıların bilgisayarlarına ve mobil cihazlarına yüklenen uygulamalar, bir Google Hesabı ile ilişkilendirilmiş verilere erişim yetkisi vermek için OAuth kullanabilir. Yüklü uygulamalar için OAuth'u uygulama hakkında ayrıntılı bilgi edinmek isterseniz Yüklü Uygulamalar için OAuth kılavuzuna veya bu dokümandaki genel bakışa bakın.

OAuth'u web uygulamalarıyla kullanma

Tüm Google Veri API'leri, web uygulamalarında veri kullanımını yetkilendirmeye yönelik bir açık standart olan OAuth'u destekler. OAuth isteğinde bulunan tüm web uygulamaları bir güvenlik sertifikası yüklemeli ve Google'a kaydolmalıdır. Daha fazla bilgi için Web Tabanlı Uygulamalar için Kayıt sayfasına bakın.

Google Veri API'leri İstemci Kitaplıkları, web uygulamanızda OAuth kullanmanıza yardımcı olacak yöntemler sağlar. Özellikle istek jetonunu oluşturma, istek jetonunu yetkilendirme ve bir erişim jetonu için yetkili istek jetonunu değiştirme yöntemleri vardır. Kütüphaneler, bir Google Veri hizmetine istek yaparken gerekli imzalama algoritmalarını da işler. OAuth'un Google Data API İstemci Kitaplıkları ile nasıl kullanılacağına ilişkin kapsamlı örnekler için Google Veri API'leri İstemci Kitaplıkları ile OAuth'u kullanma bölümüne bakın.

OAuth yetkilendirme süreci

OAuth yetkilendirme işlemi; web uygulamanız, Google'ın yetkilendirme sunucuları ve son kullanıcı arasında bir dizi etkileşim içerir.

Temel düzeyde süreç aşağıdaki gibidir:

  1. Uygulamanız erişim istiyor ve Google'ın yetkilendirme sunucusundan yetkisiz bir istek jetonu alıyor.
  2. Google, kullanıcıdan gerekli verilere erişmenize izin vermesini ister.
  3. Uygulamanız, yetkilendirme sunucusundan yetkili bir istek jetonu alır.
  4. Yetkili istek jetonunu bir erişim jetonuyla takas edersiniz.
  5. Google'ın hizmet erişim sunucularından veri istemek için erişim jetonunu kullanırsınız.

Uygulamanız ilk olarak kullanıcı verilerine erişim istediğinde Google, uygulamanıza yetkisiz bir istek jetonu verir.

Kullanıcı henüz giriş yapmadıysanız Google, kullanıcıdan giriş yapmasını ister. Ardından Google, uygulamanızın hangi Google hizmet verilerine erişmek istediğini görmesine olanak tanıyan bir yetkilendirme sayfası görüntüler.

Kullanıcı, uygulamanızın erişim isteğini onaylarsa Google, yetkili bir istek jetonu yayınlar. Her istek jetonu yalnızca bir saat geçerlidir. Bir erişim jetonu için yalnızca yetkili bir istek jetonuyla değişim yapılabilir ve bu exchange, her yetkili istek jetonu için yalnızca bir kez yapılabilir.

Erişim jetonları varsayılan olarak uzun ömürlüdür. Her erişim jetonu, ilk yetkilendirme isteğinde belirtilen kullanıcı hesabına özeldir ve yalnızca bu istekte belirtilen hizmetlere erişim izni verir. Kullanıcının verilerine tüm erişim için gerekli olduğundan uygulamanız erişim jetonunu güvenli bir şekilde depolamalıdır.

OAuth için hazırlanma

Uygulamanızı, OAuth ile Google Yetkilendirme hizmetini kullanacak şekilde ayarlayabilmeniz için önce aşağıdaki görevleri tamamlamanız gerekir.

Web uygulamanızı kaydedip kaydetmeyeceğinize karar verme

Kullanıcılarınıza verilerinin güvenliğiyle ilgili ek teminat sağlamak için web uygulamanızı Google'a kaydetmeyi ve isteklerinizi kayıtlı güvenlik sertifikasıyla imzalamayı seçebilirsiniz. Bazı Google Data API feed'leri yalnızca kayıtlı uygulamalarda kullanılabilir. API'nin yalnızca kayıtlı uygulamalarla çalışıp çalışmadığını belirlemek için, ilgilendiğiniz Google Data API'nin dokümanlarını inceleyin.

Uygulamanız, yaptığı her OAuth isteğini imzalamalıdır. İsteklerinizi imzalamak için RSA-SHA1 imzası kullanmayı seçerseniz kayıt sürecinin bir parçası olarak bir güvenlik sertifikası yüklemeniz gerekir.

Alternatif olarak, isteklerinizi imzalamak için HMAC-SHA1 imzası kullanabilirsiniz. HMAC-SHA1 imzaları için sertifika gerekmez. Bunun yerine Google, kaydolduktan sonra alanınızın kayıt sayfasında görüntülenen bir OAuth consumer secret değeri oluşturur.

Kayıt işlemiyle ilgili daha fazla bilgi için Web Uygulamaları Kaydı'na bakın.

Uygulamanızın erişebileceği verilerin kapsamını belirleme

Her Google hizmeti, Google Data API'leri üzerinden izin verdiği erişim sınırlarını belirler. Bu erişim, bir kapsam değeri olarak ifade edilmektedir. Bazı hizmetler, kullanıcılara hangi uygulamaların hangi verilere erişebileceğini seçme hakkı tanımak için çeşitli kapsam değerleri sağlar. Erişmek istediğiniz Google hizmetinin mevcut kapsam değerleri hakkında bilgi edinmek için ilgili hizmetin dokümanlarına bakın.

Genel olarak, ihtiyacınız olan verileri içeren en dar kapsam için jeton istemeniz gerekir. Örneğin, uygulamanızın kullanıcının "Tüm Takvimler" feed'ine erişmesi gerekiyorsa http://www.google.com/calendar/feeds/default/allcalendars/full kapsamı için bir jeton istemeniz gerekir.

OAuth jetonlarını yönetmek için mekanizma ayarlama

Bir kullanıcının verileri için OAuth erişim jetonu aldığınızda, bu erişim jetonunu, belirtilen Google hizmetiyle kullanıcı adına gelecekteki tüm etkileşimlerde kullanmanız gerekir.

Uygulamanız, jeton jetonlarının geçerli olduğu Google hizmetini izlemek de dahil olmak üzere jeton depolama alanını güvenli bir şekilde yönetmelidir. Birden fazla Google hizmetine erişmeniz gerekiyorsa birden fazla erişim jetonu alabilirsiniz. Ancak, kullanıcı ve uygulama başına en fazla on erişim jetonu daha herhangi bir zamanda kullanılabilir.

Uygulamanız birden fazla kullanıcı hesabını destekliyorsa her jetonun hangi hesapla ilişkilendirildiğini takip etmeniz gerekir. Her OAuth jetonu, erişimi yetkilendiren kullanıcıya özeldir. Uygulamanız bir jetonu doğru kullanıcıyla ilişkilendirebilmelidir. Bunu yönetmenin bir yolu, jeton isteğinde bulunmadan önce kullanıcıya çerez göndermektir. Kullanıcı istenen verilere erişim izni verdikten sonra Google, yetkili bir istek jetonu gönderir ve kullanıcıyı uygulamanıza yönlendirir. Ardından, jetonu doğru kullanıcıyla ilişkilendirmek için uygulamanızın çerezini kullanabilirsiniz.

Google hizmetine erişim istemek için mekanizma ayarlama

Google hizmetlerine yapılan her istek imzalanmalı ve geçerli bir OAuth erişim jetonu içermelidir. Genel olarak her istek, HTTP jetonu ile istekte bulunur. Erişim jetonu ve imza da başlığa dahil edilir. Yeni veri yazan istekler HTTP POST kullanmalıdır.

Her Google Data API'ye uygun istek biçimi hakkında daha fazla bilgi edinmek için ilgili API'nin dokümanlarını inceleyin.

OpenID'yi uygulama (isteğe bağlı)

Kullanıcı kimlik doğrulaması için OpenID uyguluyorsanız iki işlemi birleştirmek üzere karma protokolü kullanmayı düşünebilirsiniz. OpenID+OAuth ile istek jetonu alma ve yetkilendirme görevleri, OAuth uzantılarıyla OpenID isteğinin bir parçası olarak işlenir. OAuthGetRequestToken uzantısında olduğu gibi, bu uzantılar erişilecek Google hizmetlerini tanımlamak için kullanılır. OpenID isteğine verilen yanıt, yetkili bir istek jetonu içeriyor. Bu jeton alındıktan sonra erişim jetonuyla değiştirmek için OAuthGetAccessToken kullanın.

OAuth jetonlarıyla çalışma

OAuth'u kullanmak için uygulamanızın aşağıdaki dizide iyi biçimlendirilmiş, imzalı jeton isteği çağrıları oluşturması ve yanıtları işlemesi gerekir:

  1. Yetkisiz istek jetonu (OAuthGetRequestToken) alma
  2. İstek jetonunu yetkilendirme (OAuthAuthorizeToken)
  3. Erişim jetonu için (OAuthGetAccessToken) yetkili istek jetonunu takas etme

Uygulamanızın kayıtlı olup olmadığına bakılmaksızın tüm OAuth istekleri imzalanmalıdır. Daha fazla bilgi için OAuth İsteklerini İmzalama bölümüne bakın.

OAuth Playground'da yetkilendirme jetonları isteme ve alma denemeleri yapabilirsiniz.

Ayrıntılı dokümanlar için OAuth API referansı sayfasına bakın.

Geri çağırma URL'si ayarlama

Erişim isteğinizi yetkilendirdikten sonra Google'ın kullanıcıyı nereye yönlendireceğini belirlemek için OAuthGetRequestToken isteğinde oauth_callback için bir değer belirtebilirsiniz. Geri çağırma URL'si sorgu parametreleri içerebilir. Yönlendirme, aynı sorgu parametrelerini ve uygulamanızın ayrıştırabilmesi gereken yetkili istek jetonunu içerir.

Örneğin, birden çok dili desteklerken kullanıcının görüntülediği uygulamanın sürümünü tanımlayan bir sorgu parametresi ekleyebilirsiniz. oauth_callback değeri "http://www.siteniz.com/Gettoken?Lang=de" "http://www.siteniz.com/Gettoken?Lang=de&oauth_token=DQAADKEDE" yönlendirmesiyle sonuçlanır. Jeton ve dil parametresi ayrıştırıldığında, kullanıcı tekrar sitenin doğru sürümüne yönlendirilir.

oauth_callback parametresi eklenmezse Google, erişim isteğinizi yetkilendirmesinin ardından kullanıcıyı bir doğrulama numarasının gösterildiği bir web sayfasına (örneğe bakın) yönlendirir. Yetkili bir istek jetonu alabilmeniz için kullanıcının uygulamanıza manuel olarak geri dönüp doğrulama numarasını girmesi gerekir.

Uygulamanızı kullanıcılara tanımlama

Google, normalde kullanıcıdan erişim izni isterken bir uygulamanın adını gösterir (örneği inceleyin).

Uygulamanız kayıtlı değilse uygulamanızın adını belirtmek için OAuthGetRequestToken isteğinizdeki xoauth_displayname parametresini kullanın. Bu parametre belirtilmezse Google, oauth_callback parametresi tarafından sağlanan URL'nin alan adını gösterir. Geri çağırma URL'si sağlanmazsa Google "anonim" dizesini görüntüler.

Uygulamanız kayıtlıysa bu parametreyi ayarlamayın. Varsayılan olarak Google, kayıt sırasında gösterilen görünen adı gösterir. OAuthGetRequestToken isteğinizde bir görünen ad ayarlarsanız Google, kayıtlı görünen adınız yerine bunu kullanır ve uygulamanızın kimliğinin doğrulanamadığını belirten bir mesaj ekler.

Not: OAuth Playground'da xoauth_displayname parametresini ayarlamak için istek jetonunu getirmeden önce "Gelişmiş" kutusunu işaretleyin.

Google Apps alan adlarıyla çalışma

Uygulamanız, barındırılan bir Google Hesapları alanında bulunan kullanıcılar için tasarlandıysa jeton yetkilendirirken hd parametresini kullanın. hd parametresi hakkında daha fazla bilgi için Birden Çok Hesabı Olan Kullanıcıları Kullanma konusuna bakın.

OAuth hakkında daha fazla bilgi

Uygulamanızı kaydettirme ve gerekli OAuth parametrelerini oluşturma da dahil olmak üzere Google'ın OAuth uygulaması hakkında ayrıntılı bilgi için aşağıdaki ek kaynaklara bakın:

Başa dön

OAuth'u yüklü uygulamalarla kullanma

Tüm Google Veri API'leri, uygulamalarda verilerin kullanımını yetkilendirmeye yönelik bir açık standart olan OAuth'u destekler. Yüklü uygulamaların OAuth'u kullanmak için Google'a kayıtlı olması gerekmez.

OAuth yetkilendirme süreci

OAuth yetkilendirme süreci; uygulamanız, Google'ın yetkilendirme sunucuları ve son kullanıcı arasında bir dizi etkileşim içerir.

Temel düzeyde süreç aşağıdaki gibidir:

  1. Uygulamanız erişim istiyor ve Google'ın yetkilendirme sunucusundan yetkisiz bir istek jetonu alıyor.
  2. Google, kullanıcıdan gerekli verilere erişmenize izin vermesini ister.
  3. Uygulamanız, yetkilendirme sunucusundan yetkili bir istek jetonu alır.
  4. Yetkili istek jetonunu bir erişim jetonuyla takas edersiniz.
  5. Google'ın hizmet erişim sunucularından veri istemek için erişim jetonunu kullanırsınız.

Uygulamanız ilk olarak kullanıcı verilerine erişim istediğinde Google, uygulamanıza yetkisiz bir istek jetonu verir.

Kullanıcı henüz giriş yapmadıysanız Google, kullanıcıdan giriş yapmasını ister. Ardından Google, uygulamanızın hangi Google hizmet verilerine erişmek istediğini görmesine olanak tanıyan bir yetkilendirme sayfası görüntüler.

Kullanıcı, uygulamanızın erişim isteğini onaylarsa Google, yetkili bir istek jetonu yayınlar. Her istek jetonu yalnızca bir saat geçerlidir. Bir erişim jetonu için yalnızca yetkili bir istek jetonuyla değişim yapılabilir ve bu exchange, her yetkili istek jetonu için yalnızca bir kez yapılabilir.

OAuth, kayıtlı olmayan modu kullanan yüklü uygulamaları destekler. Yetkilendirilmiş istek jetonunu almanın çeşitli yöntemleri olduğundan uygulamanız, yüklü olduğu cihazın web tarayıcısı olmasa bile bir uygulamayı yetkilendirmek için OAuth'u kullanabilir.

Erişim jetonları varsayılan olarak uzun ömürlüdür. Her erişim jetonu, ilk yetkilendirme isteğinde belirtilen kullanıcı hesabına özeldir ve yalnızca bu istekte belirtilen hizmetlere erişim izni verir. Kullanıcının verilerine tüm erişim için gerekli olduğundan uygulamanız erişim jetonunu güvenli bir şekilde depolamalıdır.

OAuth için hazırlanma

Uygulamanızı, OAuth ile Google Yetkilendirme hizmetini kullanacak şekilde ayarlayabilmeniz için önce aşağıdaki görevleri tamamlamanız gerekir.

Uygulamanızın erişebileceği verilerin kapsamını belirleme

Her Google hizmeti, Google Data API'leri üzerinden izin verdiği erişim sınırlarını belirler. Bu erişim, bir kapsam değeri olarak ifade edilmektedir. Bazı hizmetler, kullanıcılara hangi uygulamaların hangi verilere erişebileceğini seçme hakkı tanımak için çeşitli kapsam değerleri sağlar. Erişmek istediğiniz Google hizmetinin mevcut kapsam değerleri hakkında bilgi edinmek için ilgili hizmetin dokümanlarına bakın.

Genel olarak, ihtiyacınız olan verileri içeren en dar kapsam için jeton istemeniz gerekir. Örneğin, uygulamanızın kullanıcının "Tüm Takvimler" feed'ine erişmesi gerekiyorsa http://www.google.com/calendar/feeds/default/allcalendars/full kapsamı için bir jeton istemeniz gerekir.

OAuth jetonlarını yönetmek için mekanizma ayarlama

Bir kullanıcının verileri için OAuth erişim jetonu aldığınızda, bu erişim jetonunu, belirtilen Google hizmetiyle kullanıcı adına gelecekteki tüm etkileşimlerde kullanmanız gerekir.

Uygulamanız, jeton jetonlarının geçerli olduğu Google hizmetini izlemek de dahil olmak üzere jeton depolama alanını güvenli bir şekilde yönetmelidir.

Uygulamanız birden fazla kullanıcı hesabını destekliyorsa her jetonun hangi hesapla ilişkilendirildiğini takip etmeniz gerekir.

Google hizmetine erişim istemek için mekanizma ayarlama

Google hizmetlerine yapılan her istek imzalanmalı ve geçerli bir OAuth erişim jetonu içermelidir. Genel olarak her istek, HTTP jetonu ile istekte bulunur. Erişim jetonu ve imza da başlığa dahil edilir. Yeni veri yazan istekler HTTP POST kullanmalıdır.

Her Google Data API'ye uygun istek biçimi hakkında daha fazla bilgi edinmek için ilgili API'nin dokümanlarını inceleyin.

OAuth jetonlarıyla çalışma

OAuth'u kullanmak için uygulamanızın aşağıdaki dizide iyi biçimlendirilmiş, imzalı jeton isteği çağrıları oluşturması ve yanıtları işlemesi gerekir:

  1. Yetkisiz istek jetonu (OAuthGetRequestToken) alma
  2. İstek jetonunu yetkilendirme (OAuthAuthorizeToken)
  3. Erişim jetonu için (OAuthGetAccessToken) yetkili istek jetonunu takas etme

Uygulamanızın kayıtlı olup olmadığına bakılmaksızın tüm OAuth istekleri imzalanmalıdır. Daha fazla bilgi için OAuth İsteklerini İmzalama bölümüne bakın. Yüklü uygulamalar, kayıtlı olmayan bir uygulamanın talimatlarını uygulamalıdır.

OAuth Playground'da yetkilendirme jetonları isteme ve alma denemeleri yapabilirsiniz.

Ayrıntılı dokümanlar için OAuth API referansı sayfasına bakın.

Uygulamanızı kullanıcılara tanımlama

Google, normalde kullanıcıdan erişim izni isterken bir uygulamanın adını gösterir (örneği inceleyin).

Uygulamanızın adını belirtmek için OAuthGetRequestToken isteğinizdeki xoauth_displayname parametresini kullanın. Bu parametre belirtilmezse Google, oauth_callback parametresi tarafından sağlanan URL'nin alan adını gösterir. Geri çağırma URL'si sağlanmazsa Google "anonim" dizesini görüntüler.

Not: OAuth Playground'da xoauth_displayname parametresini ayarlamak için istek jetonunu getirmeden önce "Gelişmiş" kutusunu işaretleyin.

Web tarayıcısı başlatma

OAuth yetkilendirme işleminin bir parçası olarak, uygulamanızın bir OAuthAuthorizeToken isteği göndermesi gerekir. Bunun ardından, kullanıcının bir Google web sayfasına giriş yapması ve uygulamanızın erişim isteğini yetkilendirmesi gerekir.

  • Otomatik algılama modu çoğu uygulama için kullanılmalıdır
  • Cihaz modu, tam web tarayıcısı başlatamayan uygulamalar için kullanılmalıdır.
  • Geliştirme modu yalnızca erken geliştirme sırasında kullanılmalıdır.

Otomatik Algılama modu

Mümkünse uygulamanız bir tarayıcı penceresi açmalı ve Google sayfasını açmak için bir OAuthAuthorizeToken isteğinde bulunmalıdır. Google yetkili jetonu döndürdüğünde, uygulamanız bunu algılayıp web tarayıcısından tekrar odaklanmaya başlar.

Bu mod, erişim isteğinizi yetkilendirdikten sonra kullanıcının yönlendirildiği bir geri çağırma URL'si sağlamanızı gerektirir. Bu URL, OAuthGetRequestToken isteğinin oauth_callback parametresi ve OAuthGetAccessToken isteğinin verifier parametresi olarak sağlanmalıdır.

Uygulamanız, kullanıcı deneyimini iyileştirmek için kullanıcı bu URL'ye yönlendirildiğinde otomatik olarak algılamayı deneyip hemen ön plana getirip OAuth işlemini tamamlamak için OAuthGetAccessToken isteğinde bulunmalıdır.

Daha fazla bilgi ve en iyi uygulamalar için Onayı Otomatik Algılama başlıklı makaleye bakın.

Uygulamanız, kullanıcının geri çağırma URL'sine yönlendirildiğini otomatik olarak algılayamazsa veya ön plana getiremezse geri çağırma URL'si, uygulamanızı ön plana nasıl getireceğinizi ve OAuthGetAccessToken isteğini uygulamanızın içinden nasıl başlatacağınızı açıklayan bir sayfa görüntülemelidir.

Cihaz modu

Uygulamanız tam bir web tarayıcısı başlatamıyorsa zengin istemcili cihazlar da web tarayıcısı olmadan yetkilendirilebilir.

Bu mod, geliştiricinin erişim iznini kullanıcının yetkilendirebileceği bir web sitesi oluşturmasına olanak tanır. Yetkilendirmenin ardından kullanıcıya Google tarafından oluşturulan bir kod verilir ve geliştiricinin sitesine yönlendirilir. Bu site, yetkilendirme işlemini tamamlamak için kullanıcıya cihazın kodunu nasıl gireceğini açıklamalıdır.

Geliştirme modu

Bu modun yalnızca uygulamanın erken geliştirme aşamasında kullanılması önerilir.

Otomatik Algılama modunda olduğu gibi, uygulamanızın bir tarayıcı başlatması ve kullanıcının isteğinizi yetkilendirmesi gerekir. Ancak geri çağırma URL'si için bir web sayfası oluşturmak yerine, oauth_callback parametresinin değerini "oob" (bant dışı) olarak ayarlayabilirsiniz.

Bu durumda, kullanıcı isteğinizi yetkilendirdikten sonra Google, kullanıcıyı bir doğrulama numarası gösteren Google Hesapları sayfasına yönlendirir (örneği inceleyin).

OAuthGetAccessToken isteğinde bulunabilmeniz için kullanıcının uygulamanıza dönüp doğrulama numarasını girmesi gerekir.

OAuth hakkında daha fazla bilgi

Uygulamanızı kaydettirme ve gerekli OAuth parametrelerini oluşturma da dahil olmak üzere Google'ın OAuth uygulaması hakkında ayrıntılı bilgi için aşağıdaki ek kaynaklara bakın:

Başa dön

Yetkilendirme için AuthSub'ı kullanma

AuthSub, Google API'lerinin çoğu için OAuth'un alternatifi olan bir Google'a ait yetkilendirme API'sıdır. Mümkünse AuthSub'ı kullanmaktan kaçınmalısınız. AuthSub kullanan uygulamalarınız varsa OAuth'a veya karma protokole geçmeniz gerekir.

AuthSub yetkilendirme işlemi

AuthSub ile yetkilendirme üç varlık arasındaki bir dizi işlemi içerir: web uygulaması, Google hizmetleri ve kullanıcı. Bu şema, diziyi göstermektedir:

Yetkilendirme süreci

  1. Web uygulamasının, kullanıcının Google hizmetine erişmesi gerektiğinde Google'ın Yetkilendirme Proxy hizmetine AuthSub çağrısı yapar.
  2. Yetkilendirme hizmeti, Erişim İsteği sayfası sunarak yanıt verir. Google tarafından yönetilen bu sayfa, kullanıcıdan Google hizmetine erişim izni vermesini/reddetmesini ister. Önce kullanıcıdan hesabına giriş yapması istenebilir.
  3. Web uygulamasına erişim izni verilip verilmeyeceğini kullanıcı belirler. Kullanıcı, erişimi reddederse web uygulamasına dönmek yerine bir Google sayfasına yönlendirilir.
  4. Kullanıcı erişim izni verirse Yetkilendirme hizmeti, kullanıcıyı web uygulamasına yönlendirir. Yönlendirme, tek kullanım için uygun bir yetkilendirme jetonu içeriyor. Uzun süreli jetonla birlikte kullanılabilir.
  5. Web uygulaması, kullanıcının aracısı olarak işlem yapmak için yetkilendirme jetonunu kullanarak Google hizmetiyle iletişim kurar.
  6. Google hizmeti jetonu tanırsa istenen verileri sağlar.

AuthSub ile çalışma

AuthSub'ı web uygulamanıza eklemek için aşağıdaki görevler gerekir:

  1. Web uygulamanızı kaydedip kaydetmeyeceğinize karar verin.

    Kayıtlı web uygulamaları, Google tarafından tanınma avantajına sahiptir; Google giriş sayfasında kullanıcılara gösterilen standart uyarı değiştirilir veya atlanır. Ayrıca, kayıtlı web uygulamaları, yalnızca arama URL'si yerine açıklayıcı bir adla tanımlanır. Bazı Google hizmetlerinin, kayıtlı olmayan web uygulamalarına yalnızca sınırlı erişime izin verdiğini unutmayın. Kaydolmayı seçerseniz bu otomatik kayıt işlemini kullanın.

    Kaydolursanız bir güvenlik sertifikası ve anahtarlar da sağlayabilirsiniz. Kayıtlı bir sertifikası olan kayıtlı web uygulamaları, bir Google hizmetinden veri isteğinde bulunurken kullanılmak üzere güvenli jetonlar elde edebilir. (Gerekirse güvenli olmayan jetonlar da kullanabilirler.)

  2. Hangi jetonların kullanılacağına ve jetonların nasıl yönetileceğine karar verin.

    Google'dan alınan bir yetkilendirme jetonunun, söz konusu kullanıcı için belirtilen Google hizmetiyle gelecekteki tüm etkileşimlerde kullanılması amaçlanmıştır. Kullanmayı seçtiğiniz jetonun türü (tek kullanımlık veya oturum), web uygulamanızın bir Google hizmetiyle olan etkileşimlerinin türüne bağlıdır. Örneğin, etkileşim tek seferlik veya nadir bir etkinlikse tek kullanımlık jeton yeterli olabilir.

    Oturum jetonları almayı ve bunları Google hizmetine erişmek için düzenli olarak kullanmayı seçerseniz, web uygulamanızın, jetonun geçerli olduğu kullanıcı ve Google hizmetini izlemek de dahil olmak üzere jeton depolama alanını yönetmesi gerekir. Google Hesapları çok sayıda jetonu yönetecek şekilde ayarlanmamıştır ve aslında tek seferde ondan fazla geçerli jetonun (kullanıcı başına, web uygulaması başına) ödenmemiş olmasına izin vermez. Bu sınırlama, web uygulamasının, gerektiğinde farklı hizmetleri kapsayacak şekilde birden fazla jeton almasını sağlar. Web uygulamasının bir Google hizmetine erişmesi gerektiğinde yeni bir jeton alınmasını desteklemez. Oturum jetonlarını depolamaya karar verirseniz jetonlar, sunucuda depolanan diğer hassas bilgiler kadar güvenli şekilde değerlendirilmelidir.

    Alternatif olarak, jeton iptali mekanizması oluşturduğunuz sürece düzenli olarak yeni jetonlar almayı seçebilirsiniz. Başka bir istekte bulunmadan önce uygulamanızın mevcut jetonu iptal etmesi gerekir. Bu senaryoda, yeni jeton her istendiğinde kullanıcının giriş yapması ve erişim izni vermesi gerekir.

  3. Erişilecek Google hizmetinin gerektirdiği kapsamı belirleyin.

    Her Google hizmeti, hizmetin ne kadar ve ne tür bir erişime izin vereceğini belirler. Bu erişim, bir kapsam değeri olarak ifade edilmektedir. Bir hizmetin kapsamı, hizmetin tamamını tanımlayan basit bir URL olabilir veya daha kısıtlı bir erişim belirtebilir. Bazı hizmetler, erişimi önemli ölçüde sınırlar (ör. sınırlı bilgilere salt okuma erişimine izin verilir). Erişmek istediğiniz Google hizmeti için izin verilen kapsamları öğrenmek üzere ilgili hizmetin dokümanlarına bakın. Mümkün olan en dar kapsamlı jeton istemelisiniz. Örneğin, Gmail'in Atom özet akışı özelliğine erişmeye çalışıyorsanız "http://www.google.com/calendar/" değil, "http://www.google.com/calendar/feeds/" kapsamını kullanın. Google hizmetleri, geniş kapsamlı isteklerle çok daha kısıtlayıcıdır.

  4. Yetkilendirme jetonu istemek ve almak için bir mekanizma ayarlayın.

    Sistemin, uygun sonraki ve kapsam URL değerlerini (3. adımda belirlenir) belirtmek de dahil olmak üzere iyi yapılandırılmış bir AuthSubRequest çağrısı oluşturması gerekir. Güvenli jetonlar kullanıyorsanız ve/veya oturum jetonlarını yönetiyorsanız, isteğin bu değişkenlerin değerlerini de içermesi gerekir.

    Sonraki URL, sorgu parametrelerini içerebilir. Örneğin, birden çok dili desteklerken kullanıcının görüntülediği web uygulamasının sürümünü tanımlayan bir sorgu parametresi ekleyin. http://www.yoursite.com/Retrievetoken?Lang=de değerindeki sonraki değer, http://www.yoursite.com/Retrievetoken?Lang=de&token=DQAADKEDE yönlendirmesiyle sonuçlanır. Jetonun ve Lang parametresinin ayrıştırılması, kullanıcının sitenin doğru sürümüne yönlendirilmesini sağlar.

    Belirli durumlarda hd parametresinden yararlanmak, kullanıcılarınızın Google Hesapları sitesine erişim izni vermeleri gerektiğinde onlara daha kolay bir deneyim sunar. Çoğu durumda bu işlem, kullanıcıların hesabına giriş yapmak ve erişim izni verip vermemek gibi basit bir işlemdir. Bununla birlikte, birden fazla Google Hesabı (normal bir Gmail hesabı ve/veya bir veya daha fazla Google Apps barındırılan hesabı) olan kullanıcıların, erişmek istedikleri hesapları tespit etmek için ekstra "evrensel giriş" sürecini uygulaması gerekebilir. Uygulamanız belirli bir yönetilen alan adı için tasarlanmışsa söz konusu alan adını tanımlamak için bu parametreyi kullanarak bu ek adımları ortadan kaldırabilirsiniz. Uygulamanız, barındırılan hesaplarda kullanılamayan hizmetlere erişirse hd parametresini de kullanabilirsiniz. Bu ayarın "varsayılan" değerine ayarlanması, yetkilendirmeyi yalnızca normal hesaplarla sınırlar. hd değeri ayarlandığında Google, yetkilendirme için otomatik olarak doğru hesabı seçer.

    Jeton mekanizması, Google'dan alınan, tek kullanımlık jetonu içeren yönlendirmeyi ayrıştıracak ve bununla ilgili işlem yapacak donanıma sahip olmalıdır. Yetkilendirme jetonları bir kullanıcıya özel olduğundan, uygulamanızın bir jetonu kullanıcılarıyla ilişkilendirebilmesi gerekir. Tercih edilen seçenek, jeton isteğinde bulunmadan önce kullanıcıya çerez oluşturulmasıdır. Ardından, Google kullanıcıyı eklenen jetonla sitenize yeniden yönlendirdiğinde, uygulamanız çerezi okuyabilir ve jetonu doğru kullanıcı kimliğiyle ilişkilendirebilir.

  5. Oturum jetonları istemek ve gerekirse jetonları depolamak veya iptal etmek için mekanizmalar oluşturun.

    2. adımda aldığınız jeton yönetimi kararlarına bağlı olarak, oturum jetonlarını almak ve iptal etmek için mekanizmalar oluşturmanız gerekebilir (AuthSubSessionToken ve AuthSubCancelToken). Oturum ve iptal mekanizmalarını test etmek için belirli bir jetonun geçerli olup olmadığını belirten AuthSubTokenInfo işlevini kullanın. Jetonları depoluyorsanız uygulamanın hem jeton kimliğini hem de jetonun kapsadığı hizmeti (kapsamı) izlemesi gerekir.

  6. Bir Google hizmetine erişim istemek için bir mekanizma ayarlayın.

    Uygun istek biçimiyle ilgili bilgi edinmek için Google hizmetine ilişkin belgelere bakın. Bir Google hizmetine yapılan tüm istekler geçerli bir yetkilendirme jetonu içermelidir. Genel olarak, bir Google hizmetine yapılan istek, istek başlığında başvurulan jetonla birlikte HTTP GET (veya yeni veri yazıyorsa POST) biçimindedir.

    İstek başlığı aşağıdaki biçimde olmalıdır:

    Authorization: AuthSub token="token"

    Jeton, bir AuthSub isteğine yanıt olarak Google'dan alınan yetkilendirme jetonu, tek kullanımlık veya oturumdur. Jeton güvenliyse dijital imzayla birlikte kullanılmalıdır. Talimatlar ve örnekler için "İstekleri imzalama" bölümüne bakın.

    Aşağıdaki örnekte, Google Takvim feed hizmetine yapılan bir çağrı için istek başlığı gösterilmektedir. Bu istek güvenli olmayan bir jeton içeriyor:

    GET /calendar/feeds/default/private/full HTTP/1.1
    Content-Type: application/x-www-form-urlencoded
    Authorization: AuthSub token="GD32CMCL25aZ-v____8B"
    User-Agent: Java/1.5.0_06
    Host: www.google.com
    Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
    Connection: keep-alive

AuthSub hakkında daha fazla bilgi

Uygulamanızı Google'a kaydetme ve bir oturum jetonu için tek kullanımlık jeton almanın ayrıntılı açıklaması dahil olmak üzere AuthSub hakkında daha fazla bilgi edinmek için aşağıdaki ek kaynakları inceleyin:

Başa dön

Yetkilendirme için ClientLogin'i kullanma

ClientLogin, Google API'lerinin çoğu için OAuth'a alternatif olarak kullanılabilen, Google'a ait bir yetkilendirme API'sidir. Mümkünse ClientLogin'yi kullanmaktan kaçınmanız gerekir. ClientLogin kullanan uygulamalarınız varsa OAuth'a veya karma protokole geçmeniz gerekir.

Yüklü Uygulamalar İçin Kimlik Doğrulama: ClientLogin

ClientLogin, kullanıcılarınızın uygulamanızın içinden Google hesaplarına giriş yapmasına olanak tanır. Ardından, uygulama giriş verileriyle Google ile bağlantı kurar ve belirli bir Google Veri API'sine erişim ister. Giriş bilgileri başarıyla doğrulandıktan sonra Google, jetonları iade eder. Uygulamanız, kullanıcı hesabına erişmek istediğinde (ör. veri almak veya yayınlamak) bunu belirtir. Bu jeton, birlikte çalıştığınız Google hizmeti tarafından tanımlanan belirli bir süre geçerlidir.

Not: Google Veri API'leri İstemci Kitaplıkları, yüklü uygulamalarınızda ClientLogin'i kullanmanıza yardımcı olacak yöntemler sağlar. Özellikle kimlik doğrulama jetonu alma, CAPTCHA sorgulamalarını işleme, daha sonra kullanmak üzere yetkilendirme jetonunu geri çağırma ve her istekle doğru Authorization üstbilgisini gönderme yöntemleri vardır. Kitaplıklardan biriyle çalışıyorsanız ClientLogin'i Google Veri API'leri İstemci Kitaplıklarıyla Kullanma konusuna bakın.

ClientLogin yetkilendirme işlemi

ClientLogin ile yetkilendirme; yüklü uygulama, Google hizmetleri ve kullanıcı olmak üzere üç varlık arasındaki bir dizi işlemi içerir. Bu şema, diziyi göstermektedir:

Yetkilendirme süreci

  1. Üçüncü taraf uygulamasının, kullanıcının Google hizmetine erişmesi gerektiğinde kullanıcının giriş adını ve şifresini alır.
  2. Üçüncü taraf uygulaması daha sonra Google'ın Yetkilendirme hizmetine bir ClientLogin çağrısı yapar.
  3. Google Yetkilendirme hizmeti ek incelemenin gerekli olduğuna karar verirse CAPTCHA resmi için URL biçiminde bir CAPTCHA jetonu ve sorgulaması ile hata yanıtı döndürür.
  4. Bir CAPTCHA doğrulaması yapılırsa üçüncü taraf uygulaması, kullanıcının CAPTCHA resmini görüntüler ve kullanıcıdan yanıt ister.
  5. İstenirse kullanıcı CAPTCHA sorgulamasında bir yanıt gönderir.
  6. Üçüncü taraf uygulaması, bu sefer CAPTCHA yanıtı ve jetonu (hata yanıtıyla alınan) dahil olmak üzere yeni bir ClientLogin çağrısı yapıyor.
  7. Google Yetkilendirme hizmeti, başarılı bir giriş denemesinde (CAPTCHA doğrulaması kullanılarak veya yapılmadan) uygulamaya bir jeton döndürür.
  8. Uygulama, Google Yetkilendirme hizmetinden alınan jetona referans vererek Google hizmetiyle veri erişimi isteğinde bulunur.
  9. Google hizmeti jetonu tanırsa istenen veri erişimini sağlar.

ClientLogin'i kullanma

Bir kullanıcının Google hesabına programatik olarak erişmek için yüklü uygulamanızda bu arayüzü kullanın. Kullanıcıdan giriş bilgilerini topladıktan sonra, kullanıcının hesabına erişim istemek için ClientLogin'i arayın. Giriş bilgileri başarıyla doğrulandıktan sonra Google, jetonları kullanıcı hesabına her erişim isteğinde bulunduğunda bir jeton döndürür. Bu jeton belirli bir süre boyunca geçerlidir. Bu süre, birlikte çalıştığınız Google hizmeti tarafından tanımlanır.

ClientLogin'i uygulamanıza eklemek için aşağıdaki görevler gerekir:

  1. Kullanıcının giriş verilerini yakalamak için bir kullanıcı arayüzü öğesi oluşturun.

    Kullanıcı arayüzünün, kullanıcı adı (alan adı dahil e-posta adresi) ve şifre istemesi gerekir. Ayrıca kullanıcı arayüzü, Google'dan alınan URL'yi (gerekirse) kullanarak CAPTCHA resmini gösterebilmeli ve kullanıcıdan doğru yanıtı isteyebilmelidir. İdeal olarak, kullanıcının yeni bir hesaba kaydolması veya başka bir hesap bakımı yapması gerektiğinde kullanıcı arayüzünüz Google Hesapları giriş sayfasına ("https://www.google.com/accounts/Login") bir bağlantı içerir.

  2. İyi biçimlendirilmiş bir HTTPS POST ClientLogin isteği oluşturmak ve iletmek için kodu yazın.

    Bu kodun, bir CAPTCHA testini gerçekleştirmek için belirli bir mantık içermesi ve hem logintoken hem de logincaptcha parametrelerini içermesi gerekir. Uygulama aynı zamanda, kullanıcı gerekli bilgileri atladığında (veya giriş başarısız olduktan sonra yanlış verileri tekrarladığında) algılayabilir ve gereksiz bir istek göndermeden hata görüntüleyebilir.

  3. Google'dan gelen yanıtları yönetme.

    Bir giriş isteğine verilen dört olası yanıt vardır:

    • başarılı (HTTP 200)
    • açıklayıcı hata koduna sahip bir hata (HTTP 403)
    • Geçersiz istek, genellikle bozuk bir istekten kaynaklanır
    • CAPTCHA doğrulaması başarısız

    Başarılı olan bir yanıtta "Auth" etiketli bir yetkilendirme jetonu bulunur. Bu jeton, bu hesapla ilgili olarak Google hizmetine yapılan sonraki tüm isteklere dahil edilmelidir. Yetkilendirme jetonları dikkatli bir şekilde korunmalı ve kullanıcının hesabına erişimi temsil ettiği için başka bir uygulamaya verilmemelidir. Jetondaki süre sınırı, jetonu veren hizmete bağlı olarak değişiklik gösterir.

    Başarısız yanıtı, bir veya daha fazla hata kodunu ve kullanıcı için görüntülenebilecek hata mesajını içeren bir URL'yi içerir. ClientLogin ürününün, yanlış şifreden kaynaklanan bir hata ile tanınmayan bir kullanıcı adı nedeniyle oluşan (örneğin, kullanıcı henüz bir hesaba kaydolmamış olması nedeniyle) bir hatadan ayırt edemediğini lütfen unutmayın. Uygulamanızın olası tüm hata mesajlarını gerektiği gibi ele alması gerekir.

    CAPTCHA doğrulaması başarısız olursa Google, ek güvenlik önlemlerinin herhangi bir nedenle alınması gerektiğine karar vermiş demektir. Bu yanıta bir CAPTCHA resim URL'si ve belirli bir CAPTCHA testini temsil eden bir jeton eşlik eder.

  4. Google'ın CAPTCHA testinden geçin.

    Bu zorluğun üstesinden gelmek için uygulamanın CAPTCHA resmini göstermesi ve kullanıcıdan yanıt istemesi gerekir. CAPTCHA resmini göstermek için hata yanıtı ile birlikte döndürülen CaptchaUrl değerini kullanın. Bunu da Google Hesapları URL'sinin önüne ekleyin: "http://www.google.com/accounts/". Kullanıcı yanıt verdiğinde uygulama, CAPTCHA jetonu (logintoken) ve kullanıcının yanıtı (logincaptcha) da dahil olmak üzere giriş isteğini yeniden göndermelidir. Google, hesaba erişim yetkisi vermeden önce kullanıcının yanıtını doğrular.

    Kullanıcıya CAPTCHA yanıtı sağlama ve iletme sürecini yönetmek istemeyen geliştiriciler için bir alternatif vardır. Bir CAPTCHA meydan okumasına yanıt olarak, uygulama kullanıcıyı Google tarafından barındırılan sayfaya yönlendirebilir: "https://www.google.com/accounts/DisplayUnlockCaptcha". Kullanıcı zorluklara başarıyla yanıt verdiğinde Google sunucusu, kullanılan bilgisayara güvenir. Ardından uygulama, yetkilendirme jetonunu almak için orijinal giriş isteğini yeniden gönderebilir.

  5. Not: Google, bir CAPTCHA doğrulaması yapmadan önce giriş denemesini doğrulamaz. Bu, giriş denemesinin CAPTCHA testinden sonra bile başarısız olabileceği anlamına gelir.

* CAPTCHA, Carnegie Mellon Üniversitesi'nin ticari markasıdır

Başa dön

Gadget'lar için Kimlik Doğrulama

OAuth Proxy'si

Standart Gadget'lar API'sini kullanarak bir gadget oluşturuyorsanız Google Veri API'larına erişmek için OAuth Proxy adı verilen gadget platformunun bir özelliğinden yararlanabilirsiniz. OAuth (yukarıda açıklanmıştır), kullanıcıların iGoogle, MySpace veya Orkut gibi bir gadget barındırma hizmetinde gizli verilerine erişmesine veya verilerini başka bir web sitesi ya da gadget ile paylaşmasına olanak tanıyan bir kimlik doğrulama standardıdır. OAuth Proxy, OAuth'un kimlik doğrulama ayrıntılarının çoğunu gizleyerek gadget geliştiricilerinin geliştirme sürecini kolaylaştırmak için tasarlanmıştır. Proxy, gadget spesifikasyonunun bir uygulaması olan Shindig adlı bir açık kaynak projesini temel alır.

Not: OAuth Proxy, yalnızca gadgets.* API'sini kullanan ve OpenSocial kapsayıcılarında çalışan gadget'lar için desteklenir. Eski gadget API'si için desteklenmez.

Kimlik doğrulama akışı

Gadget'ınız, bir kullanıcının verilerine erişebilmek için OAuth jetonu almalıdır. OAuth Proxy, kimlik doğrulama akışını sizin yerinize yönetir. Bir kullanıcı gadget'ınızı ilk kez yüklediğinde aşağıdaki işlem gerçekleştirilir:

  1. Gadget'ınız ilk kez yükleniyor ve Google Veri API'larından birini kullanarak kullanıcının verilerine erişmeye çalışıyor.
  2. Kullanıcı erişim izni vermediğinden istek başarısız oldu. Yanıt nesnesi, OAuth onay sayfası için bir URL (response.oauthApprovalUrl URL'si) içeriyor. Gadget'ınız, bu URL ile yeni bir pencere başlatmak için bir yöntem sağlamalıdır.
  3. Onay sayfasında kullanıcı, gadget'ınıza erişim izni vermeyi veya erişimi reddetmeyi seçer. İstek başarılı olursa kullanıcı belirttiğiniz oauth_callback sayfasına yönlendirilir. En iyi kullanıcı deneyimi için http://oauth.gmodules.com/gadgets/oauthcallback kullanın.
  4. Ardından, kullanıcı pop-up penceresini kapatır. Gadget'ınızı kullanıcının onayladığını bildirmek için pop-up işleyici kullanarak onay penceresinin kapatıldığını tespit edin. Alternatif olarak, gadget'ınız ise bu pencere kapandıktan sonra kullanıcının tıklaması için bir bağlantı (ör. "Erişimi onayladım") gösterebilir.
  5. Gadget'ınız, kullanıcı verilerini yeniden talep ederek Google Data API'sine ikinci kez erişmeyi dener. Bu deneme başarılı.
  6. Gadget'ınızın kimliği doğrulanmıştır ve normal şekilde çalışmaya başlayabilir.

Gadget kurulumu

Bir veya daha fazla Google Veri API'sine erişmek için önce gadget'ınıza kimlik doğrulama yöntemi olarak OAuth kullanmasını bildirmeniz gerekir. Gadget'ınızın XML'inin <ModulePrefs> bölümüne bir <OAuth> öğesi ekleyin:

<ModulePrefs>
...
<OAuth>
  <Service name="google">
    <Access url="https://www.google.com/accounts/OAuthGetAccessToken" method="GET" />
    <Request url="https://www.google.com/accounts/OAuthGetRequestToken?
                  scope=http://www.blogger.com/feeds/%20http://www.google.com/calendar/feeds/" method="GET" />
    <Authorization url="https://www.google.com/accounts/OAuthAuthorizeToken?
                        oauth_callback=http://oauth.gmodules.com/gadgets/oauthcallback" />
  </Service>
</OAuth>
...
</ModulePrefs>

Bu bölümde yalnızca aşağıdaki sorgu parametrelerini değiştirin:

scope
İstek URL'sinde gerekli bir parametre. Gadget'ınız, bu parametrede kullanılan scope öğelerindeki verilere erişebilir. Bu örnekte, gadget Blogger ve Takvim verilerine erişebilir. Bu örnekteki gibi gadget tek bir kapsam veya birden çok kapsam için veri isteyebilir.
oauth_callback
Yetkilendirme URL'sinde isteğe bağlı parametre. Kullanıcı verilere erişimi onayladıktan sonra OAuth onay sayfası bu URL'ye yönlendirme yapar. Kullanıcılar gadget'ınızı yüklediğinde en iyi kullanıcı deneyimini sağlamak için bu parametreyi http://oauth.gmodules.com/gadgets/oauthcallback olarak ayarlamalısınız. Bu sayfa, pop-up penceresini otomatik olarak kapatan bir JavaScript snippet'i sağlar. Alternatif olarak, bu parametreyi kendi "onaylı" sayfanızı işaret edecek şekilde ayarlayabilir veya herhangi bir parametreyi boş bırakabilirsiniz.

Kimliği doğrulanmış bir Google Data API feed'ine erişme

Gadget'ınız kullanıcı kimliğini doğruladıktan sonra Google Data API'leri JavaScript istemci kitaplığı ile bir Google Data API'sına kolayca erişebilirsiniz. OAuth Proxy'sinde kitaplığın nasıl kullanılacağı hakkında bilgi için JavaScript İstemci Kitaplığı'nı kullanma başlıklı makaleyi inceleyin.

Gadget'lar hakkında daha fazla bilgi

OAuth Proxy, ayrıntılı başlangıç bilgileri ve gadgets.* spesifikasyonuyla ilgili ayrıntılar da dahil olmak üzere Google Data API Gadget'ları oluşturma hakkında tüm bilgiler için şu ek kaynaklara bakın:

Başa dön