Ana içeriğe geç

Google Sheets API: Yeni Başlayanlar İçin Adım Adım Kılavuz

API’yi kullanarak Google Sheets’i okuma, yazma, biçimlendirme ve otomatikleştirmeyi, pratik örneklerle öğrenin.
· 15 dk. oku

Yapay Zeka ile Keşfedin

Ekiplerin veri saklayıp paylaştığı yer çoğunlukla Google Sheets olur. Ancak aynı sayfayı tekrar tekrar güncellemeye başladığınızda, elle kopyala-yapıştır yapmak zaman kaybıdır.

Google Sheets API, kendi uygulamalarınız ve betiklerinizden sayfaları otomatik olarak güncellemenize ve yönetmenize olanak tanır. Verileri içeri çekebilir, güncellemeleri dışarı gönderebilir ve raporları el ile uğraşmadan güncel tutabilirsiniz.

Bu kılavuzda, kurulumu yapma, okuma, yazma, biçimlendirme ve yaygın e-tablo görevlerini otomatikleştirme adımlarını tek tek göstereceğiz.

Google Sheets API’ye Başlarken

Google Sheets API’yi kullanmaya başlamak için bir Google Cloud projesine ve uygulamanızı kimlik doğrulamak için bir yönteme ihtiyacınız var. Bunu üst düzeyde nasıl kuracağınıza bakalım. 

Google Cloud projesi oluşturma

Tüm Google API’leri bir Google Cloud projesi içinde çalışır. Bu proje kimlik bilgilerinizi, API ayarlarınızı ve kullanım limitlerinizi barındırır.

İlk projenizi şöyle oluşturabilirsiniz: 

  • Gidin: Google Cloud Console.
  • Üst kısımdan Bir proje seçin’e tıklayın.
  • Yeni bir açılır pencere Bir proje seçin görünür. Buradan Yeni Proje’ye tıklayın.
  • Sonraki pencerede bir proje adı girin.
  • Şunu tıklayın: Oluştur.

Google Console’da yeni bir proje oluşturma

Google Console’da yeni bir proje oluşturun. Görsel: Yazar.

Proje hazır olduğunda gerekli API’leri etkinleştirin: 

  • Projenizi açın.
  • Sol üstteki üç çizgiye tıklayın. 
  • Şuraya gidin: APIs & Services > Enabled APIs & services.
  • + Enable APIs & services’e tıklayın.

Gerekli API’yi etkinleştirmek için Google Console’da Enable APIs & Services’a gidin.

API’yi etkinleştirmek için Enable APIs & Services’a gidin. Görsel: Yazar.

  • Şimdi API Library penceresi açılır. Arama çubuğunda Google Sheets API yazıp arayın ve tıklayın.
  • Şuna tıklayın: Enable.

Google Console’da Google Sheets API’yi etkinleştirin.

Google Sheets API’yi etkinleştirin. Görsel: Yazar.

Uygulamanızın e-tablo dosyaları oluşturması, taşıması veya yönetmesi gerekiyorsa, Google Drive API’yi de etkinleştirin: 

  • Şunu arayın: Google Drive API.
  • Şuna tıklayın: Enable.

Kimlik doğrulama ve yetkilendirme

Google Sheets API üç temel kimlik doğrulama yöntemini destekler. Hangisini kullanacağınız, uygulamanızın nasıl çalıştığına bağlıdır.

OAuth 2.0

Gerçek kullanıcılar oturum açıp kendi e-tablolarıyla çalıştığında bunu kullanın. Bu, kullanıcıların erişimi onaylamasına olanak tanır ve uygulamanız yalnızca izin verilenleri yapabilir.

Diyelim ki kullanıcıların Google hesaplarını bağlamasına olanak veren ve uygulamanızın onların kişisel Sheets verilerini okumasını veya güncellemesini sağlayan bir web uygulaması geliştiriyorsunuz. Bu durumda OAuth 2.0’ı tercih edin. 

Bunu şu şekilde yaparsınız:

  • Google Console’da şuraya gidin: Navigation Menu (sol üstteki üç çizgi) > API & Services > OAuth consent screen

Goolge Console’da OAuth onay ekranına gidin.

OAuth onay ekranına gidin. Görsel: Yazar.

  • Şimdi ayrıntıları doldurun: 
    • App name alanına onay gerektiren uygulamanın adını girin
    • Kullanıcıların soru sorabileceği destek e-postasını girin ve Next’e tıklayın
    • Şimdi External hedef kitle tipini seçin ve Next’e tıklayın
    • Ardından, Google’ın projenizdeki değişiklikleri bildirebilmesi için iletişim bilgilerini (e-posta adresi) doldurun. Sonra Next’e tıklayın
    • Kutucuğu işaretleyerek politikayı kabul edin ve Continue’a tıklayın
  • Şunu tıklayın: Save. OAuth configuration created! mesajı görünecektir.

Şimdi, son kullanıcıları kimlik doğrulamak ve onların Google Sheets verilerine erişmek için OAuth 2.0 istemci kimlik bilgileri oluşturun. Bir istemci kimliği, uygulamanızı Google’ın OAuth sunucularına benzersiz şekilde tanıtır.

Bunu şu şekilde yaparsınız: 

  • Şuraya tıklayın: Navigation Menu > APIs & Services > Credentials.
  • Credentials penceresinde + Create credentials öğesine tıklayın ve OAuth client ID’yi seçin.

Goolge Console’da OAuth client ID’ye gidin.

OAuth client ID’ye gidin. Görsel: Yazar.

  • Şimdi Application type açılır menüsünden Web Application’ı seçin.
  • Konsolda tanımlanması için OAuth 2.0 istemcisinin adını girin.
  • Authorized redirect URIs altında Add URI’ye tıklayın
  • Google’ın yetkilendirme yanıtını göndereceği yönlendirme URL’sini girin. Bu, uygulamanızda yapılandırılan yönlendirme URI’siyle (örneğin OAuth geri çağırma uç noktanız) tam olarak eşleşmelidir
  • Create’e tıklayın
  • Client ID ve Client Secret’ı kopyalayıp saklayın. 

API anahtarları

API anahtarları bir kullanıcıyı değil, projenizi tanımlar. Yalnızca herkese açık e-tablolarla çalışır ve özel dosyaları düzenleyemez.

Bu nedenle, yalnızca herkese açık bir Google Sheet’ten verileri bir web sitesinde göstermek üzere okumak istediğinizde veya basit bir betiği test ederken bunu kullanmalısınız.

API anahtarınızı şöyle oluşturursunuz: 

  • Şuraya gidin: Navigation Menu > APIs & Services > Credentials.

Goolge Console’da API Keys’e gidin.

API Keys’e gidin. Görsel: Yazar.

  • + Create credentials’a tıklayın, ardından API key’i seçin.
  • Aşağı kaydırın, Restrict key kutusunu işaretleyin ve bu API anahtarının kullanılabileceği API’leri açılır listeden seçin. 
  • Şuna tıklayın: Create.
  • Oluşturulan anahtarı kopyalayıp kaydedin.

Google Console’dan oluşturulan API anahtarını kopyalayın.

Oluşturulan API anahtarını kaydedin. Görsel: Yazar.

Hizmet hesapları

Hizmet hesapları, uygulamanızın kullanıcı oturumu olmadan kendi başına çalışmasını sağlar. Belirli e-tabloları hizmet hesabı e-postasıyla paylaşırsınız ve neler yapabileceğini siz kontrol edersiniz.

Her gece bir raporu güncelleyen zamanlanmış bir betik çalıştırmak veya bir veritabanından paylaşılan bir Google Sheet’e veri eşitlemek istiyorsanız, hizmet hesapları en iyi seçenek olacaktır. 

Bunları nasıl oluşturup yapılandıracağımıza bakalım: 

Hizmet hesapları oluşturma ve yapılandırma

Şöyle yapın: 

  • Önceden etkinleştirdiğimiz Google Sheets API’ye tıklayın. 
  • Sol üstteki Create credentials düğmesine tıklayın.

Google Sheets API’de Kimlik Bilgileri Oluşturun

Google Sheets API’de Kimlik Bilgileri Oluşturun. Görsel: Yazar.

  • Create Credentials penceresinde, Select an API alanında Google Sheets API’nin seçili olduğundan emin olun. Şimdi erişmek istediğiniz veri türünü seçin. Hizmet hesabı kullandığınız için Application data’yı seçin ve Next’e tıklayın.

Kimlik bilgilerini girin

Kimlik bilgilerini girin. Görsel: Yazar.

  • Şimdi yeni bir Create service account penceresi açılır:
    • Hizmet hesabı adınızı, Hizmet hesabı kimliğini ve Hizmet hesabı açıklamasını ekleyin. 
    • Create and continue’a tıklayın.

Service account created bildirimi görünür.

Google Sheets API’de bir hizmet hesabı oluşturun

Google Sheets API’de bir hizmet hesabı oluşturun. Görsel: Yazar.

Bir hizmet hesabı oturum açma veya onay ekranı kullanmaz. Bunun yerine, bir JSON anahtar dosyasında saklanan özel bir anahtar kullanarak kimlik doğrular. Bu anahtar dosyası, uygulama sunucusunun kimliğini Google’a kanıtlamasını ve otomatik olarak erişim belirteçleri talep etmesini sağlar.

Şimdi bir anahtar dosyası oluşturmak için: 

  • Hizmet hesabını açın. (Ayrıca IAM & Admin > Service Account altında da bulabilirsiniz) 
  • Keys sekmesine gidin.
  • Add key > Create new key’e tıklayın.
  • JSON’ı seçip Create’e tıklayın.

Dosya indirme işlemi başlayacaktır. 

Google Sheets API için JSON anahtar dosyası oluşturun

Google Sheets API için bir JSON anahtar dosyası oluşturun. Görsel: Yazar.

Google Sheets’i hizmet hesaplarıyla paylaşma

Hizmet hesaplarının e-tablolarınıza otomatik erişimi yoktur. Her dosyayı hizmet hesabı e-postasıyla paylaşmanız gerekir.

Bunu yapmak için: 

  • İndirdiğimiz dosyayı açın ve client_email değerini bulun. Ya da Service Account menüsünde oluşturduğumuz hizmet hesabına tıklayın, ardından Email alanına bakın. İkisi de aynı e-posta adresidir. 
  • Şimdi bu e-postayı kopyalayın. 

JSON anahtar dosyasından istemci e-postasını kopyalayın.

JSON anahtar dosyasından istemci e-postasını kopyalayın. Görsel: Yazar.

  • Google Sheet’i açın.
  • Sağ üst köşedeki Share seçeneğine gidin. 
  • Az önce kopyaladığımız e-postayı paylaşım alanına yapıştırın.
  • Viewer (okuma ve yazma izni verir) veya Editor (yalnızca okuma izni verir) erişimini seçin. 
  • Erişimi paylaşmak için Send’e tıklayın. 

Hizmet hesabı erişimini Google Sheets üzerinden paylaşın

Hizmet hesabı erişimini Google Sheets üzerinden paylaşın. Görsel: Yazar.

İstemci kitaplıklarını yükleme

Google, Sheets API ile çalışmayı kolaylaştıran resmi istemci kitaplıkları sağlar. Bunlar kimlik doğrulamayı, istek biçimlendirmeyi ve yeniden denemeleri sizin yerinize yönetir. Aslında bu, ham HTTP istekleri göndermekten daha kolay ve daha güvenlidir.

İşte popüler diller için yaygın kurulum örnekleri:

Python

pip install google-api-python-client google-auth google-auth-oauthlib

Node.js

npm install googleapis

Java (istemci kitaplığını Maven ile ekleyin)

<dependency>
  <groupId>com.google.apis</groupId>
  <artifactId>google-api-services-sheets</artifactId>
</dependency>

Not: İstemci kitaplıkları kurulum süresini kısaltır ve projeniz büyüdükçe hataları azaltır.

Temel Veri İşlemleri

Google Sheets API esas olarak e-tablo verilerini okuma, yazma, güncelleme ve biçimlendirme için kullanılır. Bunları anlayalım: 

E-tablolardan veri okuma

Bir Google Sheet’ten veri okumak için iki şeye ihtiyacınız vardır: e-tablo kimliği ve erişmek istediğiniz hücre aralığı.

E-tablo kimliği, Google Sheets URL’sinden gelir. /d/ ile /edit arasındaki uzun karakter dizisidir. Bu, API’ye hangi e-tablodan okunacağını söyler.

Örneğin, Sheets URL’m şu ise: https://docs.google.com/spreadsheets/d/1s4-xSl1ztvdXmCUISe14XZWduQoJ4Ignz_HrgqsExPI/edit?gid=0#gid=0  

Bu durumda E-tablo Kimliği: 1s4-xSl1ztvdXmCUISe14XZWduQoJ4Ignz_HrgqsExPI

Spreadsheet ID

E-tablo Kimliği. Görsel: Yazar.

Aralık, sütun harfleri ve satır numaralarını kullanan A1 gösterimiyle yazılır. Örneğin:

  • A1 tek bir hücreyi okur

  • A1:C10 bir hücre bloğunu okur

  • Sheet1!A:A bir sütunun tamamını okur

  • Sheet1!1:1 bir satırın tamamını okur

Değerleri getirmek için API iki ana yöntem sunar:

  • spreadsheets.values.get tek bir aralıktan veri okur. Tam olarak hangi tabloya ya da bloğa ihtiyacınız olduğunu bildiğinizde kullanın. 

  • spreadsheets.values.batchGet tek istekte birden çok aralıktan veri okur. Aynı anda birden fazla yerden veri istediğinizde kullanın; örneğin bir sayfadan toplamlar, başka bir sayfadan detaylar gibi.

Veri okumak e-tabloyu değiştirmez. Yalnızca uygulamanızın başka yerde kullanması için değerleri döndürür. Bu yüzden panolara veri çekmek, analize veri aktarmak ve otomatik raporlar üretmek için kullanabilirsiniz.

E-tablolara veri yazma

Veri yazma, okumaya çok benzer şekilde çalışır. Yine bir e-tablo kimliği ve aralığa ihtiyacınız vardır; ancak bu kez yazmak istediğiniz değerleri de gönderirsiniz.

Google Sheets API bunun için iki ana yöntem sağlar:

  • spreadsheets.values.update: Verileri belirli bir aralığa yazıp mevcut olanın üzerine yazmak istediğinizde kullanın. Örneğin, bir tablonun başlık satırını yeni sütun adlarıyla değiştirmek istiyorsanız update doğru seçimdir. Gönderdiğiniz değerler o aralıktaki mevcut hücrelerin yerini alır.

  • spreadsheets.values.append: Mevcut verileri etkilemeden yeni satırlar eklemek istediğinizde kullanın. Günlük metrik kaydı tutmak, yeni kayıtlar eklemek veya form yanıtlarını depolamak gibi veriniz büyümeye devam ediyorsa kullanışlıdır. API, yeni değerleri son dolu satırın altına otomatik olarak ekler.

Değer giriş seçenekleri

Veri yazarken, gönderdiğiniz değerlere Google Sheets’in nasıl davranacağını da seçmeniz gerekir. Bu, ValueInputOption ile kontrol edilir.

  • RAW değeri gönderdiğiniz haliyle saklar

  • USER_ENTERED değeri sayfaya yazılmış gibi işler

Örneğin =SUM(1,2) gönderirseniz:

  • RAW ile düz metin olarak saklanır

  • USER_ENTERED ile bir formül olarak değerlendirilir

Üzerine yazma vs. ekleme

update ile append arasında seçim yapmak, sayfanızın nasıl yapılandığına bağlıdır.

Şunlarda update kullanın:

  • Veri konumu sabitse
  • Başlıkları veya bilinen hücreleri değiştiriyorsanız

Şunlarda append kullanın:

  • Veri zamanla artıyorsa
  • Mevcut satırların üzerine yazmaktan kaçınmak istiyorsanız

Toplu işlemler

Toplu işlemler, birden çok değişikliği tek bir API isteğinde gruplamanıza olanak tanır. Bu, uygulamanızın yaptığı çağrı sayısını azaltır ve kullanım limitleri içinde kalmanıza yardımcı olur.

Google Sheets API’de iki yaygın toplu kalıp vardır.

Değerlerle çalışırken şunları kullanabilirsiniz:

  • Birden çok aralığı aynı anda okumak için spreadsheets.values.batchGet

  • Tek istekte birden çok aralığa yazmak için spreadsheets.values.batchUpdate

Yapısal ve biçimlendirme değişiklikleri için spreadsheets.batchUpdate kullanın. Bu, en faydalı toplu yöntemdir ve tek istekte birçok işlemi destekler.

spreadsheets.batchUpdate ile şu değişiklikleri birleştirebilirsiniz:

  • Sayfa oluşturma veya silme
  • Bir e-tabloyu veya sekmeyi yeniden adlandırma
  • Başlık satırlarını sabitleme
  • Sütun genişliklerini değiştirme
  • Biçimlendirme uygulama
  • Aynı anda birden çok aralığı güncelleme

Örneğin, bir e-tabloyu yeniden adlandırmak ve yeni bir sekme oluşturmak için ayrı ayrı istekler göndermek yerine, her ikisini de tek bir batchUpdate çağrısında yapabilirsiniz. İş akışlarınız büyüdükçe bu, daha hızlı ve yönetimi daha kolaydır.

Toplu işlemleri raporlar kurmak, tutarlı biçimlendirme uygulamak veya bir e-tabloda geniş kapsamlı güncellemeler yapmak için kullanabilirsiniz.

Veri güncelleme ve silme

Veri güncelleme, belirli hücre veya aralıklardaki değerlerin değiştirilmesi anlamına gelir. Genellikle sayılara tazeleme yapmak, KPI’ları güncellemek veya sayfada sabit bir çıktı alanının üzerine yazmak istediğinizde kullanılır.

Mevcut değerleri güncellemek için spreadsheets.values.update kullanın. Burada hedef aralığı ve yeni değerleri belirtirsiniz; o aralıktaki mevcut veriler değiştirilir.

Temizleme vs. silme

Verileri temizlemek ve silmek aynı şey değildir:

Temizleme, hücrelerin içindeki değerleri kaldırır ama sayfayı, düzeni ve biçimlendirmeyi korur. Yapıyı etkilemeden bir aralığı boşaltmak istediğinizde spreadsheets.values.clear kullanın.

Örnek: Aynı hücrelere taze veri yazmadan önce eski bir rapor bölümünü temizlemek.

Silme, bir sayfa sekmesinin tamamını kaldırır. Bu, spreadsheets.batchUpdate içinde deleteSheet isteğiyle yapılır. Bir sayfayı silmek, verilerini ve yapısını kalıcı olarak kaldırır.

Sayfa silme işlemi geri alınamaz olduğundan, verilerin artık gerekli olmadığından emin olduğunuzda ve nadiren kullanılması en iyisidir.

Gelişmiş Özellikler ve İşlevsellik

Veri okuma ve yazmanın ötesinde, Google Sheets API e-tabloların görünümünü ve davranışını kontrol etmenizi sağlar. Bu, biçimlendirme ve görsel kuralları ölçekli şekilde otomatikleştirmeyi mümkün kılar.

Biçimlendirme ve koşullu biçimlendirme

Google Sheets API, Sheets arayüzü yerine programlı olarak hücre biçimlendirmesi uygulamanıza olanak tanır. Buna metin stilleri, renkler, sayı biçimleri ve düzen değişiklikleri dahildir.

Tüm biçimlendirme değişiklikleri spreadsheets.batchUpdate kullanılarak JSON istekleri halinde gönderilir. Her istek, neyin nerede değiştirileceğini tanımlar.

Yaygın biçimlendirme görevleri şunlardır:

  • Başlık satırlarını kalın yapmak
  • Para birimi veya yüzde için sayı biçimleri uygulamak
  • Sütun genişliklerini ayarlamak
  • Belirli aralıklar için arka plan renkleri ayarlamak

Örneğin, bir biçimlendirme isteği bir sayfanın ilk satırını hedefleyip onu açık arka plan rengiyle kalın yapabilir. İstek, ilk satırı temsil eden 0 tabanlı indeksleri kullanır.

Koşullu biçimlendirme

Koşullu biçimlendirme, hücreleri değerlerine göre otomatik olarak biçimlendirmenizi sağlar. Önemli verileri manuel inceleme olmadan vurgulamak istiyorsanız, koşullu biçimlendirme yardımcı olur. 

API kullanılarak koşullu biçimlendirme kuralları JSON ile tanımlanır ve spreadsheets.batchUpdate üzerinden uygulanır.

Şunlar için kullanabilirsiniz:

  • Negatif değerleri kırmızıyla vurgulamak
  • Eşik değerinin üstündeki veya altındaki değerleri işaretlemek
  • Belirli koşulları sağlayan satırları otomatik olarak biçimlendirmek

Örneğin, belirli bir sütunda 0’ın altındaki herhangi bir değeri vurgulayan bir kural tanımlayabilirsiniz. Uygulandıktan sonra, veri değiştikçe biçimlendirme otomatik olarak güncellenir.

Özet tablolar ve veri toplama

Google Sheets API, kod yoluyla özet tablolar (pivot tablolar) oluşturup güncelleyebilir. Özet tablolar, orijinal veriyi değiştirmeden büyük veri kümelerini özetler; bu da raporlama ve analizde yardımcı olur.

Tek yapmanız gereken, özet tabloları JSON istekleriyle tanımlayıp spreadsheets.batchUpdate ile uygulamaktır. Bu istekler, verilerin nasıl gruplanacağını, özetleneceğini ve görüntüleneceğini açıklar.

API üzerinden şunları yapabilirsiniz:

  • Hangi sütunların satır etiketleri olacağını seçmek
  • Toplama yöntemleri (toplam, sayım, ortalama) seçmek
  • Özet tablonun nerede görüneceğini kontrol etmek
  • Yeni veriler eklendikçe özet tabloları yenilemek veya değiştirmek

Örneğin, satırları anahtar kelimeye göre gruplayıp toplam tıklamalar ve gösterimleri otomatik olarak hesaplayabilirsiniz. Altta yatan veriler değiştikçe özet tablo da kendini yeniler.

Connected Sheets ve BigQuery entegrasyonu

Connected Sheets, Google Sheets’in doğrudan BigQuery ile çalışmasını sağlar. BigQuery büyük veri kümelerini işlerken, Sheets analiz ve raporlama için kullanılır. 

Milyonlarca satırı bir sayfaya kopyalamak yerine Connected Sheets, BigQuery üzerinde sorgular çalıştırır ve sonuçları görüntüler. Bu, e-tabloları çok büyük veri kümeleriyle bile hızlı ve duyarlı tutar.

Bağlantı, Google Sheets içinden oluşturulur. Bağlantının kurulmasında Google Sheets API kullanılmaz.

Çalışma şekli şöyledir:

  • Veri bir BigQuery tablosunda bulunur
  • Bir Google Sheet’i o tabloya bağlarsınız
  • Sheets sorguları çalıştırır ve sonuçları gösterir
  • Veriler dosya dışa aktarmadan yenilenebilir

Bağlandıktan sonra, doğrudan Sheets’te özet tablolar oluşturabilir, formüller uygulayabilir ve raporlar hazırlayabilirsiniz.

Kimlik doğrulama ve izinler

Connected Sheets’e erişim Google Cloud Identity and Access Management üzerinden kontrol edilir.

Sheets’i BigQuery’ye bağlayan hesabın şunlara sahip olması gerekir:

  • BigQuery Data Viewer izni
  • BigQuery Job User izni
  • Google Sheet’e erişim

Kimlik doğrulama, Google Sheets arayüzü üzerinden otomatik olarak yapılır.

Bununla birlikte bazı sınırlamaların farkında olmalısınız. Sheets API, Connected Sheets’ten veri okuyabilir, biçimlendirme uygulayabilir veya özet tablolar oluşturabilir; ancak alttaki BigQuery sorgusunu değiştiremez veya BigQuery destekli aralıklara veri yazamaz.

Bu nedenle Connected Sheets, ham veri ekleme veya düzenleme yerine analiz ve raporlama için en iyi şekilde çalışır.

Kodsuz entegrasyon araçlarını kullanma

Her iş akışı özel kod gerektirmez. Birçok kodsuz ve az kodlu araç Google Sheets API’ye doğrudan bağlanır ve teknik ayrıntıları sizin yerinize halleder. En popüler üç seçenek şunlardır:

Bu araçlar, veri kaynaklarını seçmek, zamanlama ayarlamak ve sonuçları Google Sheets’e göndermek için görsel arabirimler sunar. Kimlik doğrulama, API istekleri ve hata yönetimini arka planda yürütürler.

Bu nedenle kodsuz araçlar, kod yazmadan güvenilir veri hatlarına ihtiyaç duyan pazarlamacılar ve analistler için uygundur. Ayrıca yaygın raporlama ve pano kullanım durumlarının kurulum süresini azaltırlar.

Fiyatlandırma ve API Limitleri

Çoğu proje için Google Sheets API’yi ücretsiz kullanabilirsiniz. Anlaşılması gereken temel konu kullanım limitlerinin nasıl çalıştığıdır.

API fiyatlandırmasına genel bakış

Google, istek başına veya e-tablo işlemi başına ücretlendirme yapmaz. Bunun yerine kullanım, kotalarla kontrol edilir. 

Projeniz bu limitler içinde kaldığı sürece API’yi ücretsiz kullanabilirsiniz. Limitleri aşarsanız, kullanım düşene veya limitler artırılana kadar istekler geçici olarak engellenir.

Kullanım limitleri ve kotalar

Google Sheets API limitler uygular performans kararlılığını sağlamak ve kötüye kullanımı önlemek için. Bu limitler genellikle proje başına ve bazı durumlarda kullanıcı başına uygulanır.

Çoğu proje iki temel limit türüyle karşılaşır:

1. Dakika başına istekler: Bu limit, projenizin kısa sürede kaç API çağrısı gönderebileceğini kontrol eder. Aynı anda çok fazla küçük istek göndermek geçici hatalara yol açabilir.

Varsayılan olarak Google Sheets API şunlara izin verir:

Okuma istekleri

Yazma istekleri

Proje başına dakikada 300 istek

Proje başına dakikada 300 istek

Kullanıcı başına dakikada 60 istek

Kullanıcı başına dakikada 60 istek

2. Günlük istekler: Okuma ve yazma için, projenizin günde kaç istek yapabileceğine dair sabit bir üst sınır yoktur. API’yi gün boyu (24 saatlik dönemde) kullanmaya devam edebilirsiniz. 

Limitler çoğunlukla günün toplamına değil, dakikada gönderdiğiniz istek sayısına uygulanır.

Limitler içinde kalmak ve sorun yaşamamak için:

  • Birden çok güncellemeyi tek istekte toplayın
  • Küçük değişiklikler için tekrarlayan okumadan kaçının
  • Veriyi tekrar tekrar çekmek yerine önbelleğe alın
  • Google Cloud Console’da kullanımı izleyip erken ayarlayın

Performans Optimizasyonu ve Kota Yönetimi

Google Sheets’i otomatikleştirirken performans sorunları genellikle çok hızlı şekilde çok fazla istek göndermekten kaynaklanır. Bu yüzden, kotaların nasıl çalıştığını anlamak önemlidir. 

API kotalarını ve hız limitlerini anlama

Google, projenizin belirli bir zamanda kaç istek gönderebileceğini sınırlamak için kotalar uygular. Bazı limitler proje başına, bazıları kullanıcı başına uygulanır.

Bu limitler otomatik iş akışlarını doğrudan etkiler. Betiğiniz çok fazla isteği çok hızlı gönderirse, API hatalar döndürmeye başlar ve iş akışı durur. Bu genellikle betikler şunları yaptığında olur:

  • Satırları teker teker güncellemek
  • Büyük aralıkları tekrar tekrar okumak
  • Toplu işlem yapmadan çok sık çalışmak

Kullanımı izlemek, sorunları erken yakalamanıza yardımcı olur. Google Cloud Console’da projenizin limitlere ne kadar yaklaştığını görebilir ve ani artışları fark edebilirsiniz. Şöyle:

  • Projenizi açın.
  • APIs & Services > Enabled API Services bölümüne gidin 
  • Google Sheets API’ye tıklayın.
  • Quotas & System Limits’i açın.

Ani artışlar görürseniz, bu genellikle verimsiz istek kalıplarını işaret eder.

Google Sheets API’de Kota ve Sistem Limitleri.

Kotalar ve sistem limitleri. Görsel: Yazar.

Üssel geri çekilme (exponential backoff) uygulama

İyi yazılmış betikler bile geçici API hatalarıyla karşılaşabilir. En yaygın olanlarını ayırt etmek kolaydır:

  • 429 hataları, kısa sürede çok fazla istek gönderildiği anlamına gelir
  • 5xx hataları, API’nin geçici sunucu sorunu yaşadığını gösterir

Bu hatalar genellikle kendiliğinden düzelir. İsteği hemen yeniden denemek sorunu daha da kötüleştirebilir.

Üssel geri çekilme, istekleri güvenli şekilde yeniden denemenin standart yöntemidir. Hemen denemek yerine, betiğiniz tekrar denemeden önce bekler. Bekleme süresi her başarısızlıktan sonra artar.

Basit bir geri çekilme deseni şöyledir:

  • Bir istek gönderin
  • 429 veya 5xx hatası alırsanız bir saniye bekleyin
  • Tekrar deneyin
  • Yine başarısız olursa iki saniye bekleyin, sonra dört, sonra sekiz
  • Maksimum bekleme süresi veya deneme sayısından sonra durun

Bu yaklaşım, API üzerindeki baskıyı azaltır ve başarılı bir yeniden deneme şansını artırır.

Uygulamada üssel geri çekilme

İşte üssel geri çekilmeyle bir isteği yeniden deneyen basit bir Python örneği:

import time
from googleapiclient.errors import HttpError

def run_with_backoff(callable_request, max_retries=5):
    delay = 1

    for attempt in range(max_retries):
        try:
            return callable_request()
        except HttpError as e:
            status = getattr(e.resp, "status", None)

            if status in [429, 500, 502, 503, 504]:
                time.sleep(delay)
                delay = min(delay * 2, 32)
                continue

            raise

    raise RuntimeError("Request failed after retries.")

Daha sonra herhangi bir API çağrısını bu yardımcıyla sarmalayabilirsiniz:

result = run_with_backoff(
    lambda: service.spreadsheets().values().get(
        spreadsheetId=spreadsheet_id,
        range="Report!A1:E100"
    ).execute()
)

Bu, sorun geçiciyken betiğinizin hemen başarısız olmasını engeller ve iş akışlarınızın daha güvenilir çalışmasına yardımcı olur.

Optimizasyon stratejileri

Daha az istek gönderip yükleri küçük tuttuğunuzda performans artar. Yavaşlamaların çoğu, betiklerin tek bir çağrıda çok fazla iş yapmasından kaynaklanır.

Yavaşlamaları önlemek için en etkili teknikler şunlardır:

Toplu istekler

spreadsheets.values.batchGet, spreadsheets.values.batchUpdate ve spreadsheets.batchreadsheets.batchUpdate gibi toplu yöntemler, birçok işlemi tek bir istekte birleştirmenizi sağlar. Bu en büyük performans kazancını sağlar.

Önbellekleme

Aynı veriyi tekrar tekrar okumak zaman ve kota israfıdır. E-tablo meta verilerini veya sayfa kimliklerini bir kez alın ve betik çalışırken yeniden kullanın.

Sayfalandırma

Bazı API yanıtları verileri sayfalar halinde döndürür. Hepsini bir defada yüklemek yerine her seferinde bir sayfayı işleyin. Bu, büyük veri kümeleriyle çalışırken zaman aşımı ve bellek sorunlarını önler.

Gzip sıkıştırma

Çoğu Google istemci kitaplığı ve HTTP istemcisi gzip sıkıştırmasını otomatik olarak destekler. Geniş aralıkları okurken veya e-tablo meta verilerini çekerken olduğu gibi yanıtlar büyük olduğunda sıkıştırma boyutu azaltır.

Kısmi yanıtlar

Mümkün olduğunda, tüm kaynağın yerine yalnızca ihtiyaç duyduğunuz alanları isteyin. Daha küçük yanıtlar daha hızlıdır ve daha az bant genişliği kullanır.

Yük boyutunu en aza indirin

Hücreleri teker teker yazmaktan kaçının. Bunun yerine tam aralıklar yazın. Hiçbir şey değişmediyse biçimlendirme güncellemelerini atlayın ve verileri gereksiz yere tekrar göndermeyin.

Basit bir kural burada işe yarar: Bir betik satırlar üzerinde döngü yapıyor ve döngü içinde API çağrısı yapıyorsa, ölçeklenmez. Çalışmayı toplayın, istek sayısını azaltın ve yükleri küçük tutun.

Hata Yönetimi ve Sorun Giderme

Her API ile çalışırken hatalar olur. Bu yüzden sorunları hızlıca nasıl çözeceğimizi ve otomasyonu nasıl güvenilir tutacağımızı inceleyelim. 

Yaygın kimlik doğrulama sorunları

Google Sheets API ile başlarken hataların en yaygın kaynağı kimlik doğrulama problemleridir. Çoğu, kodunuzdaki hatalardan ziyade kurulumdan kaynaklanır.

Yaygın sorunlar şunlardır:

  • Erişim reddedildi hataları: E-tablo, hizmet hesabı e-postasıyla paylaşılmadı veya kullanıcı gerekli OAuth kapsamlarına izin vermedi
  • Geçersiz kimlik bilgileri veya dosya bulunamadı hataları: JSON anahtar dosya yolu yanlış veya dosya adı uyuşmuyor
  • API etkin değil hataları: Google Sheets API, kimlik bilgilerinin bulunduğu aynı Google Cloud projesinde etkinleştirilmemiş

OAuth sorunları genellikle kapsamların yapmak istediğiniz işle ile eşleşmemesinden kaynaklanır. Örneğin, salt okuma kapsamları yazmaya izin vermez.

Hizmet hesabı sorunları çoğunlukla paylaşım eksikliğinden gelir. Bir hizmet hesabı, e-posta adresiyle açıkça paylaşılmadıkça herhangi bir e-tablosunu göremez.

Veri biçimi ve istek hataları

İstek hataları genellikle gönderilen veriler API’nin beklediğiyle eşleşmediğinde meydana gelir. Hata mesajları çoğu zaman açıklayıcıdır, ancak ilk başta yine de kafa karıştırıcı olabilir.

Yaygın nedenler şunlardır:

  • Geçersiz A1 gösterimi: Sayfa adları yanlış yazılmış veya aralıklar mevcut değil

  • Yanlış veri yapısı: Değerler, tek bir satır için bile iki boyutlu diziler olarak gönderilmelidir

  • Tür uyumsuzlukları: Sayılar, tarihler ve formüller valueInputOption’a bağlı olarak farklı davranır

Sorun giderirken, Google API’leri genellikle doğrulamada başarısız olan alanı tam olarak işaretlediğinden, her zaman tam hata yanıtını okuyun.

Hizmet erişilebilirliği ve performans zorlukları

Her bulut hizmeti gibi, Google Sheets API de zaman zaman yüksek yük veya geçici kesintiler sırasında 503 Service Unavailable gibi sunucu hataları döndürebilir.

Bu hatalar genellikle geçicidir. Ancak hemen yeniden denemeyin; bu durumu daha da kötüleştirebilir.

Güvenilirlik sorunlarını daha etkili yönetmek için:

  • Yalnızca 429 ve 5xx gibi geçici hatalar için istekleri yeniden deneyin
  • Yeniden denemeler arasında üssel geri çekilme kullanın
  • Trafiği azaltmak için istekleri toplayın
  • Limitlere çarpmamak için kota kullanımını izleyin

Dayanıklı bir entegrasyon, bazı isteklerin başarısız olacağını varsayar. Doğru yeniden denemeler, toplama ve izleme sayesinde betikleriniz otomatik olarak toparlanabilir ve manuel müdahale olmadan çalışmaya devam edebilir.

En İyi Uygulamalar ve Güvenlik

Google Sheets API ile çalışmak kolaydır, ancak uzun vadeli güvenilirlik kurulumunuzu nasıl tasarlayıp güvence altına aldığınıza bağlıdır.

Geliştirme araçları ve kaynaklar

Google, geliştirmeyi daha güvenli ve kolay hale getirmek için resmi araçlar ve kaynaklar sağlar:

  • Google Workspace APIs Explorer, Sheets API isteklerini doğrudan tarayıcıda test etmenizi sağlar. Uç noktalarla deneyebilir, gerekli parametreleri görüntüleyebilir ve kod yazmadan yanıtları inceleyebilirsiniz. 
  • Sheets API hızlı başlangıç kılavuzları farklı diller için temel kurulumları adım adım gösterir. Kimlik doğrulamayı, basit bir okuma veya yazma çağrısını ve yaygın yapılandırma adımlarını içerir. 
  • Resmi dokümantasyon güncel davranışları ve bilinen limitleri yansıtır.
  • Bir test e-tablonuz olması, üretim verilerini riske atmadan veya canlı raporları üzerine yazmadan denemeler yapmanızı sağlar.

İstemci kitaplıkları ve SDK kullanımı

Google, Sheets API için resmi istemci kitaplıklarını sürdürür. Bu kitaplıklar kimlik doğrulamayı, yeniden denemeleri ve istek biçimlendirmeyi yönetir. Desteklenen kitaplıklarla çalışmak hataları azaltır ve zaman kazandırır. Ayrıca özel HTTP koduna kıyasla API güncellemelerine daha iyi uyum sağlarlar.

Desteklenen diller Python, Node.js ile JavaScript, Java ve Go’dur.

Her kitaplık aynı temel API yapısını izler, ancak bazıları dile özgü yardımcılar sunar. Daha basit kurulumları ve güçlü topluluk desteği nedeniyle otomasyon için genellikle Python ve Node.js tercih edilir.

İstemci kitaplıkları, bir iş akışı Drive, BigQuery veya Gmail’i içerdiğinde de diğer Google API’leriyle sorunsuz bütünleşir.

Kimlik bilgisi yönetimi ve güvenlik

Kimlik bilgileri verilere erişimi kontrol eder; bu nedenle aşağıdaki en iyi uygulamalara uyarak doğru şekilde yönetin:

  • Anahtar dosyalarını asla sürüm kontrolüne eklemeyin

  • Anahtarları herkese açık depoların dışında saklayın

  • Üretimde ortam değişkenleri veya gizli bilgi yöneticileri kullanın

  • Yalnızca gereken izinleri verin

  • Geniş roller yerine dar roller tercih edin

  • Hizmet hesabı erişimini belirli görevlere sınırlayın

  • Olağandışı artışları veya bilinmeyen erişim kalıplarını izleyin

  • Anahtarları düzenli olarak döndürün; sızan anahtarları hemen iptal edip değiştirin

Son Düşünceler 

En iyi sonraki adım, halihazırda el ile yaptığınız küçük bir görevi otomatikleştirmektir. Kontrol ettiğiniz bir e-tablo seçin, bir aralığı okuyun, ardından ona veri yazın veya ekleyin. Bu çalıştıktan sonra, bir zamanlamaya bağlayın ve kendi kendine çalışmasına izin verin.

Google Sheets API’nin faydası burada ortaya çıkar. 

Hemen karmaşık bir sisteme ihtiyacınız yok. Güvenilir tek bir iş akışı bile zaman kazandırır ve bir sonrakini oluşturmayı çok daha kolay hale getirir. Otomasyonla birlikte bu becerileri geliştirmek isterseniz, Google Sheets Temelleri öğrenme yolumuzu veya Introduction to Google Sheets ve Intermediate Google Sheets kurslarımızı inceleyin; böylece otomatikleştirdiğiniz her iş akışından daha fazla değer elde edebilirsiniz.

Laiba Siddiqui

Yazar

Laiba Siddiqui

Karmaşık konuları basitleştirmeyi seven bir içerik stratejistiyim. Splunk, Hackernoon ve Tiiny Host gibi şirketlerin hedef kitleleri için ilgi çekici ve bilgilendirici içerikler üretmelerine yardımcı oldum.

SSS

Sheets API ile Google Apps Script arasındaki fark nedir?

Sheets API, mantığınız Google’ın dışında (ör. backend, ETL, servisler) yaşıyorsa en iyisidir. Google Sheets içinde hızlıca çalışacak bir şey istiyorsanız Apps Script kullanın.

Google Sheets API’yi Google Cloud Console olmadan kullanabilir miyim?

Hayır. Her API isteği bir Google Cloud projesine ait olmalıdır. API’leri etkinleştirmek ve kimlik bilgileri oluşturmak için konsol gereklidir.

API üzerinden kimin veri değiştirdiğini takip etmek mümkün mü?

Evet. Google Sheets’te düzenleme geçmişi değişiklikleri kaydetmeye devam eder, ancak hizmet hesabı düzenlemeleri hizmet hesabının adıyla görünür.

API, Excel dosyaları için de aynı şekilde çalışır mı?

Hayır. API yalnızca Google Sheets ile çalışır. Excel dosyalarının önce dönüştürülmesi gerekir.

API’yi kullanmaya başlamanın en güvenli yolu nedir?

Bir test e-tablosunda salt okuma erişimiyle başlayın, ardından kademeli olarak yazma izinleri ekleyin.

Konular

İlgili