Sık Sorulan Sorular

    Genel bakış

  1. Google Data API nedir?
  2. Özellik isteğim veya hata raporum var. Nerelerde içerik yayınlamalıyım?
  3. Belirli bir API’de nerede soru sormalıyım?
  4. JSON nedir?
  5. XML kullanmam gerekir mi? Başka veri biçimleri var mı?
  6. Neden REST kullanıyorsunuz?
  7. Sık karşılaşılan sorunlar için ipuçları veya kısa örnek kodlar var mı?
  8. Gmail'de Data API var mı?
  9. Kimlik doğrulama

  10. Her Data API için ClientLogin'deki hizmet adı nedir?
  11. Kullanıcı bir uygulamadan çıkış yaptığında API sunucularına bilgi verilmesi gerekir mi?
  12. Bir ClientLogin kimlik doğrulama jetonunun geçerlilik bitiş tarihi var mı?
  13. Google Hesapları hakkında genel bir sorum var. Nereye gitmeliyim?
  14. API'de nasıl kimlik doğrulaması yapabilirim?
  15. AuthSub/OAuth 1 kapsam parametresi için hangi değeri kullanmalıyım?
  16. Farklı AuthSub jetonları var mı? Jetonların süresi dolar mı?
  17. ClientLogin ile AuthSub/OAuth 1 arasındaki temel fark nedir?
  18. Üçüncü taraf web uygulamalarında ClientLogin kimlik doğrulamasını kullanabilir miyim?
  19. CAPTCHA nedir?
  20. CAPTCHA testini nasıl oluşturabilirim?
  21. Web uygulamamda ClientLogin'i kullanmalı mıyım?
  22. AuthSub/OAuth 1 kullanırken kullanıcının kullanıcı adını nasıl öğrenebilirim?
  23. OAuth 1'i Google Data API istemci kitaplıklarıyla nasıl kullanırım?
  24. AuthSub'ı Google Data API istemci kitaplıklarıyla nasıl kullanırım?
  25. ClientLogin'i Google Data API istemci kitaplıklarıyla nasıl kullanırım?
  26. İstemci Kitaplıkları

  27. İstemciler, hangi programlama dillerinde Google tarafından destekleniyor?
  28. Google Veri İstemcisi kitaplıklarından biriyle ilgili hata veya özellik isteğini nasıl bildirebilirim?
  29. İstemci kitaplıklarında hata ayıklama seçeneklerini nasıl etkinleştiririm?
  30. İstemci kitaplığı sınıflarıyla ilgili referans dokümanları nerede bulabilirim?
  31. Sorun giderme

  32. HTTP hata ayıklama için hangi iyi araçlar bulunur?
  33. Java istemci kitaplığında HTTP günlük bilgilerini nasıl alabilirim?
  34. .NET istemci kitaplığında HTTP günlük bilgilerini nasıl alabilirim?
  35. gzip kodlamasını Google Veri feed'lerinden nasıl etkinleştirebilirim?
  36. PHP istemcisi kullanırken neden "Sslv2'ye Bağlanılamıyor" hatası görüyorum?
  37. Bir feed'i açıklayan Atom hizmet dokümanını nasıl edinebilirim?

Genel bakış

Google Veri API'sı nedir?

Google Data API, Google Veri protokolüne dayalı bir API'dir. Google Veri protokolü, Atom 1.0 ve RSS 2.0 sendikasyon biçimlerini ve Atom Yayınlama Protokolü'nü (APP) temel alır.

Google Veri protokolü, standartlarda yerleşik olarak bulunan uzantı mekanizmalarını kullanarak bu standartları çeşitli yöntemlerle genişletir. Feed'ler, Atom veya RSS sendikasyon biçimlerine uygundur. Yayınlama modeli, Atom Yayınlama Protokolü'ne uygundur.

Protokol ayrıca feed'ler, sorgular ve sonuçlar için genel bir model de sunar. Herhangi bir Data API'ye sorgu ve güncelleme göndermek için bu API'yi kullanabilirsiniz.

Özellik isteğim veya hata raporum var. Nerelerde yayınlamalıyım?
Sorun izleyicimize göz atın. Destek talebinizi ekleyip durumu hakkında güncellemeler almak için özellik isteğinizi arayın ve yıldız ekleyin.
Belirli bir API'de nerede soru sormalıyım?
Sorununuz burada listelenmiyorsa veya daha fazla açıklama istiyorsanız her Google Data API'sine özel tartışma grupları vardır:
JSON nedir?

JSON, JavaScript Object Notation anlamına gelir.

JSON, sadeliği web geliştiricileri arasında yaygın şekilde kullanılan bir veri değişim biçimidir. Okuması ve yazması kolaydır. Bunları herhangi bir programlama dili kullanarak ayrıştırabilirsiniz. Yapıları doğrudan çoğu programlama dilinde kullanılan veri yapılarıyla eşlenir.

Google Veri API'leriyle JSON kullanma hakkında daha fazla bilgi edinin.

XML kullanmam gerekir mi? Başka veri biçimleri var mı?
Google Veri API'lerinin varsayılan veri biçimi, Atom özet akışı biçiminde XML'dir. Ancak bir feed isteğinde bulunurken, alt sorgu parametresini kullanarak alternatif bir biçim belirtebilirsiniz.
  • alt=rss
    Yanıt verileri RSS özet akışı olarak biçimlendirilir.
  • alt=json veya alt=json-in-script
    Atom özet akışının XML yapısının JSON gösterimini döndürür. JavaScript'in ek avantajı, JavaScript müşteri kodunda "ayrıştırılmasının" daha kolay olmasıdır. Şu anda JSON kullanımı yalnızca salt okuma seçeneği olarak mevcuttur. Ancak, JavaScript istemci kitaplığının Blogger, Kişiler veya Takvim hizmetleriyle birlikte kullanılması, verilerin okunmasına ve yazılmasına olanak tanır.

    JSON feed'leri isteme ve kullanma hakkında daha fazla bilgi edinin.

  • alt=atom-in-script
    alt=json-in-script işlevine benzer, ancak sonuçlar JSON yerine bir Atom XML dizesi olarak döndürülür.
  • alt=rss-in-script
    alt=atom-in-script işlevine benzer, ancak sonuçlar Atom yerine RSS XML dizesi olarak döndürülür.

Google Veri Referans Kılavuzu'ndan alternatif biçimler hakkında daha fazla bilgi edinebilirsiniz.

REST'i neden kullanıyorsunuz?
REST; basit, hafif, ölçeklenebilir olup verileri temsil etme ve gösterme açısından son derece başarılıdır.
Sık karşılaşılan sorunlar için ipuçları veya kısa örnek kodlar var mı?
Hem istemci kitaplıklarımız hem de ham istekler oluşturma konusunda yardım almak için Google Veri API'si İpuçları Blogu'na göz atmanız gerekir.
Gmail'in bir Veri API'sı var mı?

Hayır, ancak kullanıcının okunmamış mesajlarına salt okuma erişimi istemek için Gmail'in Atom özet akışını AuthSub veya OAuth 1 ile kullanabilirsiniz. Kapsam https://mail.google.com/mail/feed/atom/ olarak ayarlanmalıdır. Örnek bir sorgu:

GET https://mail.google.com/mail/feed/atom/

Postalarınızı yönetmek istiyorsanız Gmail'in IMAP/POP desteği de vardır.


Kimlik doğrulama

Google Veri API'leri belgelerinde "OAuth" OAuth 1 anlamına gelir; OAuth 2.0 ayrıntıları için bağımsız API'nizin dokümanlarına bakın.

Her bir Data API için ClientLogin'deki hizmet adı nedir?
"Hizmet adı", ClientLogin kimlik doğrulama sisteminin bir Google hizmetini tanımlamak için kullandığı kısa bir dizedir.
Google API'si Hizmet adı
Google Analytics Veri API'leri analytics
G Suite API'leri
(Alan Adı Bilgileri ve Yönetimi)
apps
Google Sites Veri API'sı jotspot
Blogger Veri API'sı blogger
Book Search Veri API'si print
Takvim Veri API'sı cl
Google Code Search Veri API'sı codesearch
Kişiler Veri API'sı cp
Content API for Shopping structuredcontent
Dokümanlar Listesi Veri API'sı writely
Finans Verileri API'sı finance
Gmail Atom feed'i mail
Health Data API'si health
weaver (H9 korumalı alanı)
Haritalar Veri API'leri local
Picasa Web Albümleri Veri API'sı lh2
Sidewiki Veri API'sı annotateweb
E-tablolar Veri API'sı wise
Web Yöneticisi Araçları API'si sitemaps
YouTube Data API youtube

ClientLogin isteğinde kullanılan diğer parametreler hakkında daha fazla bilgi edinmek için ClientLogin dokümanlarına bakın.

Kullanıcılar bir uygulamadan çıkış yaptığında API sunucularına bilgi verilmesi gerekir mi?
Hayır, bir kullanıcı uygulamadan çıkış yaptığında Google Data API'yi bilgilendirmek gerekmez. Ancak, uygulamanızın artık yayınlanan bir AuthSub jetonu kullanması gerekmiyorsa jetonu iptal etmesi gerekir.
ClientLogin kimlik doğrulama jetonunun geçerlilik bitiş tarihi var mı?
ClientLogin jetonu sorunun verildiği tarihten itibaren 2 hafta sürebilir, ancak bu sınır hizmete özgüdür ve daha kısa olabilir.
Google Hesapları hakkında genel bir sorum var. Nereye gitmeliyim?
Google Hesapları Yardım Merkezi'ni ziyaret edin.
API'lerde nasıl kimlik doğrulama yapabilirim?
HTTP isteğinizde ClientLogin, AuthSub veya OAuth 1 kullanılarak alınan bir jetonu içeren bir Yetkilendirme başlığı olmalıdır.
AuthSub/Oauth 1 kapsam parametresi için hangi değeri kullanmalıyım?
AuthSub ve OAuth 1, uygulamanızın hangi Google hizmetlerine erişeceğini belirlemek için bir scope parametresi gerektirir. OAuth 2.0 hakkında ayrıntılı bilgi için ilgili API'nizin dokümanlarına bakın.

Google API'si ClientLogin Hizmet Adı
Google Analytics Data API https://www.google.com/analytics/feeds/
Google Sites Veri API'sı http(s)://sites.google.com/feeds/
Blogger Veri API'sı http://www.blogger.com/feeds/
Book Search Veri API'si http://www.google.com/books/feeds/
Takvim Veri API'sı http(s)://www.google.com/calendar/feeds/
Kişiler Veri API'sı http(s)://www.google.com/m8/feeds/
Content API for Shopping https://www.googleapis.com/auth/structuredcontent
Dokümanlar Listesi Veri API'sı http(s)://docs.google.com/feeds/
Finans Verileri API'sı http://finance.google.com/finance/feeds/
Gmail Atom feed'i https://mail.google.com/mail/feed/atom/
Health Data API'si https://www.google.com/health/feeds/
https://www.google.com/h9/feeds/ (H9 korumalı alanı)
Haritalar Veri API'sı http://maps.google.com/maps/feeds/
Picasa Web Albümleri Veri API'sı http://picasaweb.google.com/data/
Portable Contacts API http://www-opensocial.googleusercontent.com/api/people
Sidewiki Veri API'sı http://www.google.com/sidewiki/feeds/
E-tablolar Veri API'sı http(s)://spreadsheets.google.com/feeds/
Web Yöneticisi Araçları API'si http://www.google.com/webmasters/tools/feeds/
YouTube Data API http://gdata.youtube.com
Farklı AuthSub jeton türleri var mı? Jetonların süresi dolar mı?
İki tür AuthSub jetonu vardır. İlki, "token" sorgu parametresiyle web uygulamanıza sunulan tek kullanımlık jetondur. Bu jetonun süresi, verildiği hizmetle ilk kez kullanıldığında veya bir oturum jetonuyla değiştirildiğinde sona erer.

Jeton, kullanıcı veya AuthSubRevokeToken API çağrısı aracılığıyla açıkça iptal edilmediği sürece geçerlilik süresi dolmaz. Bir oturum jetonu karşılığında yalnızca orijinal AuthSubRequest URL'sinin sorguda session=1 olarak belirtildiği durumlarda tek bir jeton kullanılabilir.
ClientLogin ile AuthSub/OAuth 1 arasındaki temel fark nedir?

AuthSub web uygulamaları için tasarlanmıştır. Kullanıcı kimlik bilgilerinin üçüncü taraf bir web sitesi yerine doğrudan kullanıcının web tarayıcısından güvenli bir şekilde Google sunucularına gönderilmesini sağlar.

ClientLogin, yüklü masaüstü uygulamaları içindir. İstekte bulunan uygulamanın, kullanıcı kimlik bilgilerini kullanıcı adına Google'a iletmesi gerekir.

Google Account Authentication API ile ilgili belgelere bakın.

ClientLogin kimlik doğrulamasını üçüncü taraf web uygulamalarında kullanabilir miyim?
ClientLogin'i üçüncü taraf web uygulamalarında kullanmak kabul edilebilir ancak önerilmez. En iyi uygulama olarak, web uygulaması hiçbir zaman kullanıcılardan giriş kimlik bilgilerini istememelidir (bu, gözetlemeye açık olabilir). Bunun yerine bir uygulama, kullanıcı kimlik bilgilerini sunucu tarafında saklamalı ve her zaman Google ile kimlik doğrulamak için kullanılan tek bir "hizmet hesabı"na sahip olmalıdır.
CAPTCHA nedir?
CAPTCHA (İnsan ve Bilgisayar Ayrımı Amaçlı Tam Otomatik Genel Turing Testi), kullanıcının insan olup olmadığını belirlemek için kullanılan bir meydan okuma testi türüdür. Terim, Carnegie Mellon Üniversitesi'nin ticari markasıdır. Daha fazla bilgi için Wikipedia'ya bakın. ClientLogin'de CAPTCHA uyguladık.
CAPTCHA testini nasıl oluşturabilirim?
Kimlik doğrulama sırasında CAPTCHA sorgulamasının ne zaman gerekli olduğunu belirlemek için özel bir algoritma kullanılır. Hatalı kimlik bilgilerine sahip tekrarlanan kimlik doğrulama denemeleri genellikle bir CAPTCHA sorgulaması oluşturur.
ClientLogin'i web uygulamamda kullanmalı mıyım?
Hayır. ClientLogin, kullanıcıya ait donanımlardaki yüklü uygulamalar tarafından kullanılmalıdır. ClientLogin API'sının web uygulamalarında kullanılması güvenli değildir ve kesinlikle önerilmez.
AuthSub/OAuth 1 kullanırken kullanıcının kullanıcı adını nasıl öğrenebilirim?
Google'dan size yalnızca kullanıcının özet akışlarına erişim izni veren bir jeton verildiğinden, kullanıcı adının ne olduğunu bilemeyebilirsiniz. Bu durum, kullanmak istediğiniz özet akışı URL'si kullanıcı adının bir parçası olarak bulunması soruna neden olabilir. Bu durumda, "kimlik doğrulama jetonunu kullandığım kullanıcı" anlamına gelen default özel kullanıcı adını kullanabilirsiniz.
OAuth 1'i Google Data API istemci kitaplıklarıyla nasıl kullanırım?
OAuth 1'i Google Data API İstemci Kitaplıklarıyla kullanma başlıklı makaleyi inceleyin.
AuthSub'ı Google Data API istemci kitaplıklarıyla nasıl kullanırım?
Google Data API İstemci Kitaplıklarıyla AuthSub'ı kullanma makalesine bakın.
ClientLogin'i Google Data API istemci kitaplıklarıyla nasıl kullanırım?
Google Data API İstemci Kitaplıklarıyla ClientLogin'i kullanma başlıklı makaleyi inceleyin.

İstemci Kitaplıkları

İstemci kitaplıkları hangi programlama dillerinde Google tarafından destekleniyor?

Java, .NET, Python ve Objective-C istemci kitaplıkları Google tarafından resmi olarak desteklenir. İş ortağımız Zend bir de PHP istemci kitaplığı yazdı. Bu kitaplıkları kullanarak Google Veri Protokolü istekleri oluşturabilir, bunları bir hizmete gönderebilir ve sunucu yanıtlarını işleyebilirsiniz. Ayrıca şu anda yalnızca Blogger, Takvim ve Google Kişiler'i destekleyen bir JavaScript istemci kitaplığı da vardır.

Java, .Net, Python veya Objective-C dışında bir dilde istemci kitaplığı yazıyor ve Data API geliştirici topluluğuyla paylaşmak istiyorsanız bunu Google Veri API'ları tartışma grubunda yayınlayın. Görüşlerinizi öğrenmekten memnuniyet duyarız.

İstemci kitaplıklarından biriyle ilgili hata veya özellik isteğini nasıl bildirebilirim?

İstemci kitaplıklarıyla ilgili hatalar veya özellik istekleri aşağıdaki konumlardan bildirilebilir:

Hatanızı yayınladıktan sonra geliştirici forumundan uygun API için bir mesaj dizisi oluşturun.

Google Data API istemci kitaplıklarında hata ayıklama seçeneklerini nasıl etkinleştiririm?
Bazı istemci kitaplıklarıyla hata ayıklamayı etkinleştirme hakkında daha fazla bilgi edinmek için lütfen şu makaleyi inceleyin: Google Data API İstemcilerinde Hata Ayıklama: Programınızdan Trafiği Keşfetme
İstemci kitaplığı sınıfları için referans dokümanları nerede bulabilirim?
İstemci kitaplığı Referans Rehberi
Java Javadoc
JavaScript JSdoc
.NET Yeni Belge
PHP csvBelgesi
Python PyDok

Sorun giderme

HTTP hata ayıklama için hangi iyi araçlar bulunur?

Aşağıda listelenen çeşitli araçlar olmakla birlikte WireShark ve Fiddler'ın ayrıntılı örneklerini açıklayan The Wire: Network Capture Tools for API Geliştiricileri makalesini de okuyabilirsiniz.

Wireshark
Wireshark bir "ağ protokolü analizcisi"dir. Ağ trafiğini yakalama ve içeriği analiz etme olanağı sağlar. HTTP isteğine ve yanıt akışlarına doğrudan erişiminizin olmadığı kitaplıklarda gerçekleşen trafikteki hataları ayıklamak için oldukça kullanışlıdır. Uygulamanız ile kimlik doğrulama hizmetleri arasındaki trafik, iletişim SSL kullanılarak şifrelendiğinden Wireshark kullanılarak analiz edilemez. Wireshark, tcpdump gibi araçlar kullanılarak yakalanan trafiği analiz etmek için de kullanılabilir. Wireshark, geliştiricilerden hem kaynak kodu hem de Windows yükleyici olarak sunulur. Üçüncü taraf paketleri birçok platformda kullanılabilir.
Çim biçme
Fiddler "HTTP hata ayıklama proxy'sidir". Kodunuzu veya çalışma zamanı ortamınızı HTTP trafiği için bir proxy sunucu kullanacak şekilde yapılandırabilirsiniz. Fiddler, uygulamanız ile Google Veri hizmetleri arasında yer alır. Böylece trafiği inceleyebilirsiniz. Fiddler 2, SSL desteği içerir. Fiddler şu anda yalnızca Windows ile kullanılabilir.
cURL
cURL, HTTP/HTTPS istekleri yapabilen bir komut satırı aracıdır. İstemcide HTTP desteği oluşturmak zorunda kalmadan bir hizmetle etkileşimleri hızlıca test etmek için oldukça kullanışlıdır.
Java istemci kitaplığında HTTP günlük bilgilerini nasıl alabilirim?

Java istemci kitaplıkları, HTTP isteklerinin günlüğe kaydedilmesini etkinleştirmek için java.util.logging paketini kullanır. Bu, durum ve istek URL'lerinin yanı sıra istekler ve yanıtlar için başlıkların günlüğe kaydedilmesini etkinleştirebilmenizi sağlar. Şu anda isteğin ve yanıt akışlarının tamamını kaydetmemektedir. Bu günlükler için kullanılan günlük kaydı adı com.google.gdata.client.http.HttpGDataRequest.

Sunuculardan bir hata kodu döndürülürse bir İstisna gönderilir. İstisna sınıfları com.google.gdata.util.ServiceException öğesinden devralınır ve getResponseBody() adlı herkese açık bir yöntem içerir. Daha fazla bilgi için Javadoc sayfasına göz atın.

HTTP günlük kaydı bilgilerini .NET istemci kitaplığında nasıl edinebilirim?
İzleme politikası etkinse .NET kitaplığı, yürütme yolunu günlüğe kaydetmek için System.Diagnostics izleme yöntemlerini kullanır. Ayrıca, bir hata olması durumunda GDataRequestException atılır. İstisna, HTTP yanıtının gövdesine erişmenize olanak tanıyan bir ResponseString içerir.
Google Veri feed'lerinden gzip kodlamasını nasıl etkinleştirebilirim?

Google Veri API'lerinin birinden gzip kodlu bir yanıt almak için iki şey yapmanız gerekir: Bir "Accept-Encode" başlığı ayarlayın ve kullanıcı aracınızı "gzip" dizesini içerecek şekilde değiştirin. Uygun şekilde oluşturulmuş başlıklara örnek:

User-Agent: my program (gzip)
Accept-Encoding: gzip
PHP istemcisini kullanırken neden "Sslv2'ye bağlanılamıyor" hatası görüyorum?

Temmuz 2009'dan itibaren, güvenliği artırmaya yönelik bir önlem olarak sunucularımızda SSLv2'yi devre dışı bırakmaya başladık. Temmuz 2007'den önce (sürüm 1.0.0 ve daha eski) kullanıma sunulan, PHP istemci kitaplığının ilk sürümlerinde maalesef bağlantıları SSLv2 kullanmaya zorlayan bir hata bulunuyordu. SSLv2'nin devre dışı olduğu bir sunucuya bağlanmak, aşağıdaki hataya neden olur:

PHP Fatal error:  Uncaught exception 'Zend_Http_Client_Adapter_Exception' with message 'Unable to Connect to sslv2://www.google.com:443.'

Bu hatayı düzeltmek için http://framework.zend.com/download sayfasından edinebileceğiniz yeni bir PHP istemci kitaplığı sürümüne geçin.

Aşağıdaki yeni kodu uygulamanıza ekleyerek daha yeni bir sürüme geçemiyorsanız $gdata mevcut Zend_Gdata örneğiniz (veya uygun alt sınıf) olabilir.

$gdata->getHttpClient()->setConfig(array('ssltransport' => 'ssl'));
Feed'leri açıklayan Atom hizmet dokümanını nasıl edinebilirim?

İstekte alt=atom-service parametresini ileterek Atom hizmet dokümanını edinebilirsiniz. Not: Google Veri API'lerinin yalnızca 2. sürümü, AtomPub hizmet dokümanı söz dizimine uygun bir hizmet dokümanı döndürür. Google Veri API'lerinin 1. sürümü hizmet belgesi döndürmeye devam etse de daha eski AtomPub taslak spesifikasyonunu temel almaktadır (iki sürüm arasında söz dizimi ve ad alanı değişiklikleri vardır).