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

Uyarı: Bu sayfa, Google'ın eski API'leri olan Google Veri API'leri hakkındadır. Yalnızca Google Veri API'leri dizininde listelenen API'ler için geçerlidir. Bu API'lerin çoğu daha yeni API'lerle değiştirilmiştir. Belirli bir yeni API hakkında bilgi edinmek için yeni API'nin belgelerine bakın. Daha yeni bir API ile istekleri yetkilendirme hakkında bilgi edinmek için Google Hesapları 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 ister. Kullanıcı verilerinin kötüye kullanılmaması için tüm erişim istekleri hesap sahibi tarafından onaylanmalıdır. Erişim denetimi iki bileşenden oluşur: kimlik doğrulama ve yetkilendirme.

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

Yetkilendirme hizmetleri, kullanıcıların Google uygulamalarında depoladıkları verilere uygulamanızın erişmesine izin vermesini sağlar. Google, gizliliği ciddiye alır ve bir kullanıcının verilerine erişim gerektiren tüm uygulamaların kullanıcı tarafından yetkilendirilmesi gerekir.

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

Google API'leri için kimlik doğrulama ve yetkilendirme, üçüncü taraf uygulamalarının belirli etkinlik türleri için kullanıcının Google Hesabı'na sınırlı erişim elde etmesine olanak tanır. Bu belgede, kullanılabilen kimlik doğrulama mekanizmaları tanıtılmakta ve her birinin uygulamanıza neler sağladığı açıklanmaktadır.

  • Google ile oturum açma, kullanıcıların Google kimlik bilgilerini kullanarak sitenizde oturum açmasına olanak tanıyan basit bir yöntemdir. Farklı cihazlara 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 imza oluşturmasını gerektirmek yerine güvenlik için SSL'yi 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.
  • OAuth 2.0 ile giriş (OpenID Connect), kullanıcıların Google Hesaplarıyla giriş yapmalarını sağlayarak kimliklerini doğrular. Bu, OpenID'nin yerini alacak ve OpenID kullanıcıları, OAuth 2.0 ile oturum açma özelliğine geçiş yapmayı planlamalıdır.

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

Not: Bu belge, her kimlik doğrulama yöntemine genel bir bakış sunmak için hazırlanmıştır. Her yöntemle ilgili ayrıntılı bilgi için Google Hesabı Kimlik Doğrulama API'leri dokümanının tamamına bakın.

Google Hesapları API'lerinin kullanımıyla ilgili tartışma için Google Hesapları API Grubu'na da bakın.

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

Kullanıcı tarafından yetkilendirildiği sürece birçok Google hizmeti, kullanıcı tarafından oluşturulan verilere (ör. Takvim veya Dokümanlar verileri) üçüncü taraf erişimine izin verir. Bu özellik, kullanıcıların çeşitli amaçlarla Google uygulamaları ve üçüncü taraf uygulamaları arasında veri paylaşmasına ve veri alışverişinde bulunmasına olanak tanır.

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

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

Web uygulamaları veya yüklü uygulamalar, Google Hesabı ile ilişkili verilere erişimi yetkilendirmek için yeni ve basitleştirilmiş OAuth 2.0 protokolünü kullanabilir. Google ile OAuth 2.0'ı uygulama hakkında ayrıntılı bilgi ve örnekler için OAuth 2.0 dokümanlarımıza bakın.

Web uygulamaları için OAuth 1.0

Google Hesabı veya Google Apps Hesabı ile ilişkili verilere yetkili erişim gerektiren web uygulamaları, Google'ın OAuth API uygulamasını kullanabilir. Web tabanlı uygulamalarda OAuth'u uygulama hakkında örnekler de dahil olmak üzere eksiksiz bilgi için Web Uygulamaları için OAuth kılavuzuna veya bu belgedeki genel bakışa bakın.

Yüklü uygulamalar için OAuth 1.0

Kullanıcıların bilgisayarlarına ve mobil cihazlarına yüklenen uygulamalar, Google Hesabı ile ilişkili verilere erişimi yetkilendirmek için OAuth'u kullanabilir. Yüklü uygulamalar için OAuth'u uygulama hakkında eksiksiz bilgi için OAuth for Installed Applications (Yüklü Uygulamalar İçin OAuth) kılavuzuna veya bu belgedeki genel bakışa bakın.

Web uygulamalarında OAuth kullanma

Tüm Google Veri API'leri, web uygulamalarındaki veri kullanımını yetkilendirmek için açık bir standart olan OAuth'u destekler. OAuth istekleri gönderen tüm web uygulamalarının güvenlik sertifikası yüklemesi ve Google'a kaydolması gerekir. Daha fazla bilgi için Web Tabanlı Uygulamalara Kaydolma başlıklı makaleyi inceleyin.

Google Data API'leri İstemci Kitaplıkları, web uygulamanızda OAuth'u kullanmanıza yardımcı olacak yöntemler sunar. Özellikle, istek jetonunu oluşturma, istek jetonunu yetkilendirme ve yetkilendirilmiş istek jetonunu erişim jetonuyla değiştirme yöntemleri vardır. Kitaplıklar, bir Google Veri Hizmeti'ne istekte bulunurken gerekli imzalama algoritmalarını da işler. Google Data API İstemci Kitaplıkları ile OAuth'u kullanma hakkında kapsamlı örnekler için Google Data API İstemci Kitaplıkları ile OAuth'u Kullanma başlıklı makaleyi inceleyin.

OAuth yetkilendirme süreci

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

Temel olarak süreç şu şekildedir:

  1. Uygulamanız erişim isteğinde bulunur ve Google'ın yetkilendirme sunucusundan yetkisiz bir istek jetonu alır.
  2. Google, kullanıcıdan gerekli verilere erişmenize izin vermesini ister.
  3. Uygulamanız, yetkilendirme sunucusundan yetkili bir istek jetonu alır.
  4. Yetkilendirilmiş istek jetonunu erişim jetonuyla değiştirirsiniz.
  5. Google'ın hizmet erişim sunucularından veri istemek için erişim jetonunu kullanırsınız.

Uygulamanız ilk kez bir kullanıcının verilerine erişim isteğinde bulunduğunda Google, uygulamanıza yetkisiz bir istek jetonu verir.

Kullanıcı henüz giriş yapmadıysa Google, kullanıcıdan giriş yapmasını ister. Google daha sonra, kullanıcının uygulamanızın hangi Google hizmeti verilerine erişim istediğini görmesine olanak tanıyan bir yetkilendirme sayfası gösterir.

Kullanıcı, uygulamanızın erişim isteğini onaylarsa Google yetkilendirilmiş bir istek jetonu yayınlar. Her istek jetonu yalnızca bir saat süreyle geçerlidir. Yalnızca yetkili bir istek jetonu, erişim jetonuyla değiştirilebilir ve bu değişim, yetkili istek jetonu başına yalnızca bir kez yapılabilir.

Erişim jetonları varsayılan olarak uzun ömürlüdür. Her erişim jetonu, orijinal yetkilendirme isteğinde belirtilen kullanıcı hesabına özeldir ve yalnızca bu istekte belirtilen hizmetlere erişim izni verir. Uygulamanız, erişim jetonunu güvenli bir şekilde saklamalıdır. Çünkü bu jeton, kullanıcının verilerine erişmek için gereklidir.

OAuth'a hazırlanma

Uygulamanızı OAuth ile Google yetkilendirme hizmetini kullanacak şekilde ayarlamadan ö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ği konusunda ek güvence vermek 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ı uygulamalar tarafından kullanılabilir. İlgilendiğiniz Google Data API'nin yalnızca kayıtlı uygulamalarla çalışıp çalışmadığını belirlemek için ilgili API'nin dokümanlarına bakın.

Uygulamanız, yaptığı her OAuth isteğini imzalamalıdır. İsteklerinizi imzalamak için RSA-SHA1 imzası kullanmayı tercih ederseniz kayıt işlemi sırasında 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, kayıt işleminden sonra alanınızın kayıt sayfasında gösterilen bir OAuth consumer secret değeri oluşturur.

Kayıt süreci hakkında daha fazla bilgi için Web Uygulamalarına Kayıt başlıklı makaleyi inceleyin.

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

Her Google hizmeti, Google Veri API'leri üzerinden izin verdiği erişimle ilgili sınırlar belirler. Bu erişim, kapsam değeri olarak ifade edilir. Bazı hizmetler, kullanıcının hangi uygulamaların hangi verilere erişebileceğini seçmesine olanak tanımak için çeşitli kapsam değerleri sunar. Erişmek istediğiniz Google hizmeti için kullanılabilen kapsam değerleri hakkında bilgi edinmek üzere ilgili hizmetin belgelerine bakın.

Genel olarak, ihtiyacınız olan verileri içeren en dar kapsam için jeton isteğinde bulunmanız 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 jeton istemeniz gerekir.

OAuth jetonlarını yönetmek için bir mekanizma oluşturma

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

Uygulamanız, her jetonun geçerli olduğu Google hizmetini izleme 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 herhangi bir zamanda kullanıcı ve uygulama başına en fazla on erişim jetonu 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, jetonu doğru kullanıcıyla ilişkilendirebilmelidir. Bunu yönetmenin bir yolu, jeton isteğinde bulunmadan önce kullanıcıya çerez vermektir. Kullanıcı, istenen verilere erişim izni verdikten sonra Google, yetkilendirilmiş 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 isteğinde bulunma mekanizması oluşturma

Bir Google hizmetine yapılan her istek imzalanmalı ve geçerli bir OAuth erişim jetonu içermelidir. Genel olarak, her istek HTTP GET isteği biçiminde yapılır. Erişim jetonu ve imza başlığa dahil edilir. Yeni veri yazan istekler HTTP POST'u kullanmalıdır.

Her bir Google Veri API'si için uygun istek biçimi hakkında daha fazla bilgi edinmek istiyorsanız ilgili API'nin belgelerine bakın.

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

Kullanıcı kimlik doğrulaması için OpenID'yi 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 ele alınır. OAuthGetRequestToken'da olduğu gibi, bu uzantılar, erişilecek Google hizmetlerini tanımlamak için kullanılır. OpenID isteğine verilen başarılı yanıt, yetkilendirilmiş bir istek jetonu içerir. 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 sıra için iyi biçimlendirilmiş, imzalı jeton isteği çağrıları oluşturması ve yanıtları işlemesi gerekir:

  1. Yetkisiz bir istek jetonu alma (OAuthGetRequestToken)
  2. İstek jetonunu yetkilendirin (OAuthAuthorizeToken)
  3. Yetkilendirilmiş istek jetonunu erişim jetonuyla değiştirme (OAuthGetAccessToken)

Uygulamanız kayıtlı olsun veya olmasın, tüm OAuth istekleri imzalanmalıdır. Daha fazla bilgi için OAuth İsteklerini İmzalama başlıklı makaleyi inceleyin.

OAuth Playground'da yetkilendirme jetonları isteme ve alma işlemlerini deneyebilirsiniz.

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

Geri çağırma URL'si ayarlama

Google'ın, kullanıcının erişim isteğinizi yetkilendirmesinden sonra kullanıcıyı nereye yönlendireceğini belirlemek için OAuthGetRequestToken isteğinde oauth_callback değeri belirtebilirsiniz. Geri çağırma URL'si sorgu parametreleri içerebilir. Yönlendirme, aynı sorgu parametrelerinin yanı sıra uygulamanızın ayrıştırabilmesi gereken yetkili istek jetonunu da içerir.

Örneğin, birden fazla dili desteklerken kullanıcının görüntülediği uygulama sürümünü tanımlayan bir sorgu parametresi ekleyebilirsiniz. "http://www.yoursite.com/Retrievetoken?Lang=de" oauth_callback değeri, "http://www.yoursite.com/Retrievetoken?Lang=de&oauth_token=DQAADKEDE" yönlendirmesiyle sonuçlanır. Jetonun ve dil parametresinin ayrıştırılması, kullanıcının sitenin doğru sürümüne geri yönlendirilmesini sağlar.

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

Uygulamanızı kullanıcılara tanıtma

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

Uygulamanız kayıtlı değilse uygulamanızın adını belirtmek için OAuthGetRequestToken isteğinizde xoauth_displayname parametresini kullanın. Bu parametre belirtilmemişse Google, oauth_callback parametresi tarafından sağlanan URL'nin alan adını gösterir. Geri çağırma URL'si sağlanmazsa Google "anonymous" dizesini gösterir.

Uygulamanız kayıtlıysa bu parametreyi ayarlamayın. Google, varsayılan olarak kayıt sırasında belirtilen 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 bu adı 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 alanlarıyla çalışma

Uygulamanız, barındırılan Google Hesapları alanındaki kullanıcılar için tasarlanmışsa jeton yetkilendirilirken hd parametresini kullanmayı düşünebilirsiniz. hd parametresi hakkında daha fazla bilgi için Birden Fazla Hesabı Olan Kullanıcıları İşleme başlıklı makaleyi inceleyin.

OAuth hakkında daha fazla bilgi

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

Başa dön

Yüklü uygulamalarda OAuth kullanma

Tüm Google Veri API'leri, uygulamalarda veri kullanımını yetkilendirmek için açık bir standart olan OAuth'u destekler. Yüklü uygulamaların OAuth kullanmak için Google'a kaydedilmesi 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 olarak süreç şu şekildedir:

  1. Uygulamanız erişim isteğinde bulunur ve Google'ın yetkilendirme sunucusundan yetkisiz bir istek jetonu alır.
  2. Google, kullanıcıdan gerekli verilere erişmenize izin vermesini ister.
  3. Uygulamanız, yetkilendirme sunucusundan yetkili bir istek jetonu alır.
  4. Yetkilendirilmiş istek jetonunu erişim jetonuyla değiştirirsiniz.
  5. Google'ın hizmet erişim sunucularından veri istemek için erişim jetonunu kullanırsınız.

Uygulamanız ilk kez bir kullanıcının verilerine erişim isteğinde bulunduğunda Google, uygulamanıza yetkisiz bir istek jetonu verir.

Kullanıcı henüz giriş yapmadıysa Google, kullanıcıdan giriş yapmasını ister. Google daha sonra, kullanıcının uygulamanızın hangi Google hizmeti verilerine erişim istediğini görmesine olanak tanıyan bir yetkilendirme sayfası gösterir.

Kullanıcı, uygulamanızın erişim isteğini onaylarsa Google yetkilendirilmiş bir istek jetonu yayınlar. Her istek jetonu yalnızca bir saat süreyle geçerlidir. Yalnızca yetkili bir istek jetonu, erişim jetonuyla değiştirilebilir ve bu değişim, yetkili istek jetonu başına yalnızca bir kez yapılabilir.

OAuth, kayıtlı olmayan modu kullanan yüklü uygulamaları destekler. Yetkili istek jetonu elde etmek için çeşitli yöntemler olduğundan, uygulamanız yüklendiği cihazda 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, orijinal yetkilendirme isteğinde belirtilen kullanıcı hesabına özeldir ve yalnızca bu istekte belirtilen hizmetlere erişim izni verir. Uygulamanız, erişim jetonunu güvenli bir şekilde saklamalıdır. Çünkü bu jeton, kullanıcının verilerine erişmek için gereklidir.

OAuth'a hazırlanma

Uygulamanızı OAuth ile Google yetkilendirme hizmetini kullanacak şekilde ayarlamadan önce aşağıdaki görevleri tamamlamanız gerekir.

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

Her Google hizmeti, Google Veri API'leri üzerinden izin verdiği erişimle ilgili sınırlar belirler. Bu erişim, kapsam değeri olarak ifade edilir. Bazı hizmetler, kullanıcının hangi uygulamaların hangi verilere erişebileceğini seçmesine olanak tanımak için çeşitli kapsam değerleri sunar. Erişmek istediğiniz Google hizmeti için kullanılabilen kapsam değerleri hakkında bilgi edinmek üzere ilgili hizmetin belgelerine bakın.

Genel olarak, ihtiyacınız olan verileri içeren en dar kapsam için jeton isteğinde bulunmanız 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 jeton istemeniz gerekir.

OAuth jetonlarını yönetmek için bir mekanizma oluşturma

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

Uygulamanız, her jetonun geçerli olduğu Google hizmetini izleme 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 isteğinde bulunma mekanizması oluşturma

Bir Google hizmetine yapılan her istek imzalanmalı ve geçerli bir OAuth erişim jetonu içermelidir. Genel olarak, her istek HTTP GET isteği biçiminde yapılır. Erişim jetonu ve imza başlığa dahil edilir. Yeni veri yazan istekler HTTP POST'u kullanmalıdır.

Her bir Google Veri API'si için uygun istek biçimi hakkında daha fazla bilgi edinmek istiyorsanız ilgili API'nin belgelerine bakın.

OAuth jetonlarıyla çalışma

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

  1. Yetkisiz bir istek jetonu alma (OAuthGetRequestToken)
  2. İstek jetonunu yetkilendirin (OAuthAuthorizeToken)
  3. Yetkilendirilmiş istek jetonunu erişim jetonuyla değiştirme (OAuthGetAccessToken)

Uygulamanız kayıtlı olsun veya olmasın, tüm OAuth istekleri imzalanmalıdır. Daha fazla bilgi için OAuth İsteklerini İmzalama başlıklı makaleyi inceleyin. Yüklü uygulamalar, kayıtlı olmayan uygulamalarla ilgili talimatlara uymalıdır.

OAuth Playground'da yetkilendirme jetonları isteme ve alma işlemlerini deneyebilirsiniz.

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

Uygulamanızı kullanıcılara tanıtma

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

Uygulamanızın adını belirtmek için xoauth_displayname isteğinizde OAuthGetRequestToken parametresini kullanın. Bu parametre belirtilmemişse Google, oauth_callback parametresi tarafından sağlanan URL'nin alan adını gösterir. Geri çağırma URL'si sağlanmazsa Google "anonymous" dizesini gösterir.

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

Uygulamanız, OAuth yetkilendirme sürecinin bir parçası olarak OAuthAuthorizeToken isteğinde bulunmalıdır. Kullanıcı daha sonra bir Google web sayfasına giriş yapmalı ve uygulamanızın erişim isteğini yetkilendirmelidir.

  • Çoğu uygulama için AutoDetect modu kullanılmalıdır.
  • Cihaz modu, tam bir web tarayıcısı başlatamayan uygulamalar için kullanılmalıdır.
  • Geliştirme modu yalnızca geliştirmenin ilk aşamalarında kullanılmalıdır.

Otomatik algılama modu

Uygulamanız mümkünse bir tarayıcı penceresi açmalı ve Google sayfasını açmak için OAuthAuthorizeToken isteğinde bulunmalıdır. Google, yetkili jetonu döndürdüğünde uygulamanız bunu algılamalı ve web tarayıcısından odağı geri kazanmalıdır.

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

Kullanıcı deneyimini iyileştirmek için uygulamanız, kullanıcının bu URL'ye yönlendirildiğini otomatik olarak algılamaya çalışmalı, hemen kendini ön plana çıkarmalı ve OAuth sürecini tamamlamak için OAuthGetAccessToken isteğinde bulunmalıdır.

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

Uygulamanız, kullanıcının geri çağırma URL'sine yönlendirildiği zamanı otomatik olarak algılayamıyorsa veya kendisini ön plana getiremiyorsa geri çağırma URL'si, uygulamanızı nasıl ön plana getireceğinizi ve uygulamanızdan nasıl OAuthGetAccessToken isteği başlatacağınızı açıklayan bir sayfa göstermelidir.

Cihaz modu

Uygulamanız tam bir web tarayıcısı başlatamıyorsa zengin istemci cihazların web tarayıcısı olmadan yetkilendirilmesi de mümkündür.

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

Geliştirme modu

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

AutoDetect modunda olduğu gibi, uygulamanız bir tarayıcı başlatmalı ve kullanıcı isteğinizi yetkilendirmelidir. 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ğe bakın).

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ı kaydetme ve gerekli OAuth parametrelerini oluşturma da dahil olmak üzere Google'ın OAuth'u uygulaması hakkında ayrıntılı bilgi için şu ek kaynaklara bakın:

Başa dön

Yetkilendirme için AuthSub kullanma

AuthSub, çoğu Google API'si için OAuth'a alternatif olarak sunulan, Google'a ait bir yetkilendirme API'sidir. Mümkünse AuthSub kullanmaktan kaçınmalısınız. AuthSub kullanan uygulamalarınız varsa OAuth'a veya karma protokole geçiş yapmanız gerekir.

AuthSub yetkilendirme süreci

AuthSub ile yetkilendirme, üç öğe arasındaki bir dizi etkileşimi içerir: web uygulaması, Google hizmetleri ve kullanıcı. Bu şemada sıra gösterilmektedir:

Yetkilendirme süreci

  1. Web uygulamasının bir kullanıcının Google hizmetine erişmesi gerektiğinde Google'ın yetkilendirme proxy hizmetine bir AuthSub çağrısı yapılır.
  2. Yetkilendirme hizmeti, bir erişim isteği sayfası sunarak yanıt verir. Google tarafından yönetilen bu sayfada, kullanıcıdan Google hizmetine erişim izni vermesi/reddetmesi istenir. Kullanıcıdan önce hesabına giriş yapması istenebilir.
  3. Kullanıcı, web uygulamasına erişim izni verip vermeyeceğine karar verir. Kullanıcı erişimi reddederse web uygulamasına geri yönlendirilmek yerine bir Google sayfasına yönlendirilir.
  4. Kullanıcı erişim izni verirse yetkilendirme hizmeti, kullanıcıyı web uygulamasına geri yönlendirir. Yönlendirme, tek kullanımlık bir yetkilendirme jetonu içerir. Bu jeton, uzun ömürlü bir jetonla değiştirilebilir.
  5. Web uygulaması, kullanıcı adına işlem yapmak için yetkilendirme jetonunu kullanarak Google hizmetiyle iletişime geçer.
  6. Google hizmeti jetonu tanırsa istenen verileri sağlar.

AuthSub ile çalışma

AuthSub'ı web uygulamanıza entegre etmek için şu görevleri tamamlamanız 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 çağırma URL'siyle değil, 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 sürecini kullanın.

    Kaydolursanız güvenlik sertifikası ve anahtarları da sağlayabilirsiniz. Dosyada sertifikası bulunan kayıtlı web uygulamaları, bir Google hizmetinden veri isterken kullanılmak üzere güvenli jetonlar alabilir. (Gerekirse güvenli olmayan jetonlar da kullanabilirler.)

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

    Google'dan alınan 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 jeton türü (tek kullanımlık veya oturum), web uygulamanızın bir Google hizmetiyle etkileşim 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 Google hizmetine erişmek için bunları düzenli olarak kullanmayı seçerseniz web uygulamanız, jetonun geçerli olduğu kullanıcıyı ve Google hizmetini izlemek de dahil olmak üzere jeton depolamayı yönetmelidir. Google Hesapları, çok sayıda jetonu yönetmek için tasarlanmamıştır ve aslında herhangi bir zamanda (kullanıcı başına, web uygulaması başına) ondan fazla geçerli jetonun beklemede kalmasına izin vermez. Bu sınırlama, gerekirse bir web uygulamasının farklı hizmetleri kapsayacak şekilde birden fazla jeton almasına olanak tanır. Web uygulamasının bir Google hizmetine her erişmesi gerektiğinde yeni bir jeton alınmasını desteklemez. Oturum jetonlarını depolamaya karar verirseniz bu jetonlar, sunucuda depolanan diğer hassas bilgiler kadar güvenli bir şekilde ele alınmalıdır.

    Alternatif olarak, jeton iptal mekanizması ayarladığınız sürece düzenli olarak yeni jetonlar almayı da seçebilirsiniz. Uygulamanızın başka bir jeton istemeden önce mevcut jetonu iptal etmesi gerekir. Bu senaryoda, her yeni jeton 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, ne kadar ve ne tür erişime izin vereceğini belirler. Bu erişim, kapsam değeri olarak ifade edilir. Bir hizmetin kapsamı, hizmetin tamamını tanımlayan basit bir URL olabilir veya daha kısıtlı bir erişim belirtebilir. Bazı hizmetler, sınırlı bilgilere salt okuma erişimine izin vermek gibi erişimi ciddi şekilde kısıtlar. 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ı jetonu istemelisiniz. Örneğin, Gmail'in Atom feed özelliğine erişmeye çalışıyorsanız "http://www.google.com/calendar/" yerine "http://www.google.com/calendar/feeds/" kapsamını kullanın. Google hizmetleri, geniş kapsamlı istekler konusunda çok daha kısıtlayıcıdır.

  4. Yetkilendirme jetonu isteme ve alma mekanizması oluşturun.

    Mekanizma, uygun next ve scope URL değerlerini (3. adımda belirlenir) belirterek iyi biçimlendirilmiş bir AuthSubRequest çağrısı oluşturmalıdır. Güvenli jetonlar kullanıyorsanız ve/veya oturum jetonlarını yönetiyorsanız isteğe bu değişkenlerin değerleri de dahil edilmelidir.

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

    Belirli durumlarda, hd parametresinin kullanılması, Google Hesapları sitesinde erişim izni vermeleri istendiğinde kullanıcılarınızın deneyimini kolaylaştırmaya yardımcı olabilir. Çoğu durumda bu işlem, kullanıcının hesabına giriş yapıp erişim izni verip vermeyeceğini seçmesi kadar basittir. Ancak 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, hangi hesaba erişmek istediklerini belirlemek için ek "evrensel giriş" sürecini uygulamaları gerekebilir. Uygulamanız belirli bir yönetilen alan için tasarlanmışsa bu parametreyi kullanarak bu alanı tanımlayabilir ve bu ek adımları ortadan kaldırabilirsiniz. Uygulamanız, barındırılan hesaplarda kullanılamayan hizmetlere erişiyorsa hd parametresini de kullanabilirsiniz. Değeri "varsayılan" olarak ayarlamak, yetkilendirmeyi yalnızca normal hesaplarla sınırlar. hd değeri ayarlandığında Google, yetkilendirme için doğru hesabı otomatik olarak seçer.

    Jeton mekanizması, Google'dan alınan ve tek kullanımlık jetonu içeren yönlendirmeyi ayrıştıracak ve bu jetonla işlem yapacak şekilde donatılmalıdır. Yetkilendirme jetonları kullanıcıya özel olduğundan uygulamanızın bir jetonu kullanıcısıyla ilişkilendirebilmesi gerekir. Tercih edilen seçenek, jeton isteğinde bulunmadan önce kullanıcıya çerez vermektir. Ardından, Google kullanıcıyı eklenmiş bir jetonla sitenize yönlendirdiğinde uygulamanız çerezi okuyabilir ve jetonu doğru kullanıcı tanımlamasıyla ilişkilendirebilir.

  5. Oturum jetonları istemek ve bunları saklamak ya da iptal etmek için mekanizmalar ayarlayın (varsa).

    2. adımda belirlediğiniz jeton yönetimi kararlarına bağlı olarak, oturum jetonlarını (AuthSubSessionToken ve AuthSubRevokeToken) alma ve iptal etme mekanizmaları oluşturmanız gerekebilir. Oturum ve iptal mekanizmalarını test etmek için belirli bir jetonun geçerli olup olmadığını belirten AuthSubTokenInfo'yu kullanın. Jetonlar depolanıyorsa uygulama, hem kullanıcı kimliğini hem de jetonun kapsadığı hizmeti (kapsam) izlemelidir.

  6. Google hizmetine erişim isteğinde bulunmak için bir mekanizma oluşturun.

    Doğru istek biçimi hakkında bilgi edinmek için Google hizmetinin dokümanlarına bakın. Bir Google hizmetine yönelik tüm istekler geçerli bir yetkilendirme jetonu içermelidir. Genel olarak, bir Google hizmetine yapılan istek, istek başlığında referans verilen jetonla birlikte bir HTTP GET (veya yeni veriler yazılıyorsa POST) biçimindedir.

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

    Authorization: AuthSub token="token"

    Burada token, AuthSub isteğine yanıt olarak Google'dan alınan, tek kullanımlık veya oturum jetonudur. Jeton güvenliyse dijital imza ile birlikte gönderilmelidir. Talimatlar ve örnekler için "İmza istekleri" başlıklı makaleyi inceleyin.

    Aşağıdaki örnekte, Google Takvim feed hizmetine yapılan bir çağrının 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 tek kullanımlık jetonu oturum jetonuyla değiştirme hakkında ayrıntılı açıklama da dahil olmak üzere AuthSub hakkında bilgi edinmek için şu ek kaynaklara bakın:

Başa dön

Yetkilendirme için ClientLogin kullanma

ClientLogin, çoğu Google API'si için OAuth'a alternatif olarak sunulan, Google'a ait bir yetkilendirme API'sidir. Mümkünse ClientLogin kullanmaktan kaçınmalısınız. ClientLogin kullanan uygulamalarınız varsa OAuth'a veya karma protokole geçiş yapmanız gerekir.

Yüklü uygulamalar için kimlik doğrulama: ClientLogin

ClientLogin, kullanıcılarınızın Google Hesaplarına uygulamanızın içinden giriş yapmasına olanak tanır. Uygulama daha sonra giriş verileriyle Google'a bağlanır ve belirtilen bir Google Veri API'sine erişim isteğinde bulunur. Giriş bilgileri başarıyla doğrulandıktan sonra Google, uygulamanızın kullanıcının hesabına erişmek (ör. veri almak veya yayınlamak) için her istekte bulunduğunda referans alacağı bir jeton döndürür. Jeton, çalıştığınız Google hizmeti tarafından tanımlanan belirli bir süre boyunca geçerli kalır.

Not: Google Veri API'leri İstemci Kitaplıkları, ClientLogin'i yüklü uygulamalarınızda kullanmanıza yardımcı olacak yöntemler sunar. Özellikle kimlik doğrulama jetonu edinme, CAPTCHA zorluklarını ele alma, kimlik doğrulama jetonunu daha sonra kullanmak üzere geri çağırma ve her istekle birlikte doğru Authorization üstbilgisini gönderme yöntemleri vardır. Kitaplıklardan biriyle çalışıyorsanız Google Veri API'leri İstemci Kitaplıkları ile ClientLogin Kullanma başlıklı makaleyi inceleyin.

ClientLogin yetkilendirme süreci

ClientLogin ile yetkilendirme, üç öğe arasında bir dizi etkileşim içerir: yüklü uygulama, Google hizmetleri ve kullanıcı. Bu şemada sıra gösterilmektedir:

Yetkilendirme süreci

  1. Üçüncü taraf uygulaması, 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 bir URL şeklinde CAPTCHA jetonu ve sorgusu içeren bir hata yanıtı döndürür.
  4. Bir CAPTCHA testi alınırsa üçüncü taraf uygulaması, kullanıcıya CAPTCHA resmini gösterir ve kullanıcıdan yanıt ister.
  5. İstenirse kullanıcı, CAPTCHA testine yanıt gönderir.
  6. Üçüncü taraf uygulaması, bu kez CAPTCHA yanıtını ve jetonu (başarısızlık yanıtıyla birlikte alınır) içeren yeni bir ClientLogin çağrısı yapar.
  7. Başarılı bir giriş denemesinde (CAPTCHA testiyle veya CAPTCHA testi olmadan) Google yetkilendirme hizmeti, uygulamaya bir jeton döndürür.
  8. Uygulama, Google yetkilendirme hizmetinden alınan jetona referans vererek Google hizmetiyle veri erişimi isteği için iletişime geçer.
  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 bu arayüzü yüklü uygulamanızda kullanın. Kullanıcıdan giriş bilgilerini topladıktan sonra, kullanıcının hesabına erişim isteğinde bulunmak için ClientLogin'i çağırın. Giriş bilgileri başarıyla doğrulandıktan sonra Google, uygulamanızın kullanıcının hesabına her erişim isteğinde bulunduğunda referans alacağı bir jeton döndürür. Jeton, çalıştığınız Google hizmeti tarafından tanımlanan belirli bir süre boyunca geçerli kalır.

ClientLogin'i uygulamanıza dahil etmek için şu görevleri yapmanız gerekir:

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

    Kullanıcı arayüzü, kullanıcı adı (alan adı dahil e-posta adresi) ve şifre istemelidir. Kullanıcı arayüzü, gerekirse Google'dan alınan URL'yi kullanarak bir CAPTCHA resmi görüntüleyebilmeli ve kullanıcıdan doğru yanıtı isteyebilmelidir. İdeal olarak, kullanıcıların yeni bir hesaba kaydolması veya başka hesap bakımı işlemleri yapması gerektiğinde kullanıcı arayüzünüzde Google Hesapları giriş sayfasına ("https://www.google.com/accounts/Login") yönlendiren bir bağlantı yer almalıdır.

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

    Bu kod, CAPTCHA zorluğunu işleyecek mantığı içermeli ve hem logintoken hem de logincaptcha parametrelerini içermelidir. Uygulama, kullanıcının gerekli bilgileri atladığı veya giriş hatasından sonra yanlış verileri tekrar ettiği durumları da algılayabilmeli ve gereksiz bir istek göndermeden hata gösterebilmelidir.

  3. Google'dan gelen yanıtları işleme

    Giriş isteğine dört olası yanıt verilebilir:

    • başarı (HTTP 200)
    • açıklayıcı bir hata koduyla birlikte hata (HTTP 403)
    • Genellikle bozuk bir istekten kaynaklanan geçersiz istek
    • CAPTCHA testiyle ilgili hata

    Başarı yanıtı, "Auth" etiketli bir yetkilendirme jetonu içerir. Bu jeton, bu hesap için Google hizmetine yapılan tüm sonraki isteklerde yer almalıdır. Yetkilendirme jetonları, kullanıcının hesabına erişimi temsil ettiğinden yakından korunmalı ve başka bir uygulamaya verilmemelidir. Jetonun zaman sınırı, hangi hizmetin jetonu verdiğine bağlı olarak değişir.

    Başarısızlık yanıtı, bir veya daha fazla hata kodu ve kullanıcıya gösterilebilecek hata mesajını içeren bir URL içerir. ClientLogin, yanlış şifre nedeniyle oluşan hata ile tanınmayan kullanıcı adı nedeniyle oluşan hata (ör. kullanıcı henüz bir hesap için kaydolmamışsa) arasında ayrım yapmaz. Uygulamanız, olası tüm hata mesajlarını uygun şekilde işlemelidir.

    CAPTCHA zorluğu içeren bir hata yanıtı, Google'ın herhangi bir nedenle ek güvenlik önlemleri alınması gerektiğine karar verdiği anlamına gelir. Bu yanıta, CAPTCHA resminin URL'si ve belirli CAPTCHA sınavını temsil eden bir jeton eşlik eder.

  4. Google'dan gelen CAPTCHA testini çözün.

    Uygulama, testi işlemek için CAPTCHA resmini göstermeli ve kullanıcıdan yanıt istemelidir. CAPTCHA resmini göstermek için hata yanıtıyla döndürülen CaptchaUrl değerini kullanın ve başına Google Hesapları URL'sini ekleyin: "http://www.google.com/accounts/". Kullanıcı yanıtı verdikten sonra uygulama, giriş isteğini bu kez CAPTCHA jetonu (logintoken) ve kullanıcının yanıtını (logincaptcha) ekleyerek yeniden göndermelidir. Google, hesaba erişimi yetkilendirmeden önce kullanıcının yanıtını doğrular.

    Kullanıcı CAPTCHA yanıtı alma ve iletme süreçlerini yönetmek istemeyen geliştiriciler için bir alternatif vardır. Uygulama, CAPTCHA testine yanıt olarak kullanıcıyı Google tarafından barındırılan "https://www.google.com/accounts/DisplayUnlockCaptcha" sayfasına yönlendirebilir. Kullanıcı, sorguya başarıyla yanıt verdiğinde Google sunucusu, kullanılan bilgisayara güvenir. Uygulama daha sonra yetkilendirme jetonunu almak için orijinal giriş isteğini yeniden gönderebilir.

  5. Not: Google, CAPTCHA testi yayınlamadan önce oturum açma girişimini doğrulamaz. Bu, CAPTCHA testi yapıldıktan sonra bile giriş denemesinin 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 Gadgets API'yi kullanarak bir gadget oluşturuyorsanız Google Data API'lerine erişmek için OAuth Proxy adlı gadget platformu ö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 özel verilerine erişmesine ya da verilerini başka bir web sitesi veya 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ştiricilerin geliştirmeyi kolaylaştırması için tasarlanmıştır. Proxy, gadget spesifikasyonunun bir uygulaması olan Shindig adlı açık kaynaklı bir projeye dayanı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'lar API'si için desteklenmez.

Kimlik doğrulama akışı

Gadget'ınızın, kullanıcının verilerine erişebilmesi için OAuth jetonu alması gerekir. OAuth Proxy, kimlik doğrulama akışını sizin için yönetir. Bir kullanıcı gadget'ınızı ilk kez yüklediğinde aşağıdaki işlem gerçekleşir:

  1. Gadget'ınız ilk kez yüklenir ve Google Veri API'lerinden birini kullanarak kullanıcının verilerine erişmeye çalışır.
  2. Kullanıcı erişim izni vermediğinden istek başarısız oluyor. Yanıt nesnesi, OAuth onay sayfası için bir URL (response.oauthApprovalUrl içinde) içerir. Gadget'ınız, bu URL ile yeni bir pencere açma yöntemi sağlamalıdır.
  3. Onay sayfasında kullanıcı, gadget'ınıza erişim izni vermeyi veya erişimi reddetmeyi seçer. İşlem 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 pencereyi kapatır. Kullanıcının onayladığını gadget'ınıza bildirmek için onay penceresinin kapandığını algılamak üzere pop-up işleyici kullanabilirsiniz. Alternatif olarak, pencere kapandıktan sonra kullanıcının tıklayabileceği bir bağlantı (ör. "Erişimi onayladım") da gösterilebilir.
  5. Gadget'ınız, kullanıcının verilerini yeniden isteyerek Google Data API'ye ikinci kez erişmeye çalışır. Bu deneme başarılı oldu.
  6. Gadget'ınızın kimliği doğrulandı ve normal şekilde çalışmaya başlayabilir.

Gadget kurulumu

Google Data API'lerinden birine veya daha fazlasına erişmek için öncelikle gadget'ınıza kimlik doğrulama yöntemi olarak OAuth'u kullanmasını söylemeniz gerekir. Gadget'ınızın XML'sindeki <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'lardan gelen verilere erişebilir. Bu örnekte, gadget Blogger ve Takvim verilerine erişebilir. Bir gadget, bu örnekte olduğu gibi tek bir kapsam veya birden fazla kapsam için veri isteyebilir.
oauth_callback
Yetkilendirme URL'sindeki isteğe bağlı bir parametre. OAuth onay sayfası, kullanıcı verilere erişimi onayladıktan sonra bu URL'ye yönlendirir. Kullanıcılar gadget'ınızı yüklerken en iyi kullanıcı deneyimini sunmak için bu parametreyi http://oauth.gmodules.com/gadgets/oauthcallback olarak ayarlamanız gerekir. Bu sayfada, pop-up pencereyi otomatik olarak kapatan bir JavaScript snippet'i bulunur. Alternatif olarak, bu parametreyi kendi "onaylanmış" sayfanıza yönlendirecek şekilde ayarlayabilir veya parametreyi boş bırakabilirsiniz.

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

Gadget'ınız kullanıcının kimliğini doğruladıktan sonra, Google Data API'lerine erişmek için Google Data API'leri JavaScript istemci kitaplığını kullanabilirsiniz. Kitaplığı OAuth Proxy'de kullanma hakkında bilgi edinmek için JavaScript İstemci Kitaplığı'nı Kullanma başlıklı makaleyi inceleyin.

Gadget'lar hakkında daha fazla bilgi

OAuth Proxy'siyle ilgili ayrıntılar, nasıl başlayacağınıza dair bir makale ve gadgets.* spesifikasyonu da dahil olmak üzere Google Veri API'si Gadget'ları oluşturma hakkında eksiksiz bilgi için şu ek kaynaklara bakın:

Başa dön