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.
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 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
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
Ş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.
Ş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.
+ 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.
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. 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. 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. 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 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. 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. 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.
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
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
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.
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.
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
defrun_with_backoff(callable_request, max_retries=5):
delay =1for attempt inrange(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)continueraiseraise RuntimeError("Request failed after retries.")Altyapı:
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())Altyapı:
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.
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.
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.
Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Verileri temizlemek, analiz etmek ve içgörü elde etmek için Google Sheets'i kullanmayı öğrenin. Verileri sıralayın, filtreleyin ve VLOOKUP ile birleştirin.
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:
Google Console’da yeni bir proje oluşturun. Görsel: Yazar.
Proje hazır olduğunda gerekli API’leri etkinleştirin:
API’yi etkinleştirmek için Enable APIs & Services’a gidin. Görsel: Yazar.
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:
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:
OAuth onay ekranına gidin. Görsel: Yazar.
Ş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:
OAuth client ID’ye gidin. Görsel: Yazar.
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:
API Keys’e gidin. Görsel: Yazar.
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:
Google Sheets API’de Kimlik Bilgileri Oluşturun. Görsel: Yazar.
Kimlik bilgilerini girin. Görsel: Yazar.
Service account created bildirimi görünür.
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:
Dosya indirme işlemi başlayacaktır.
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:
JSON anahtar dosyasından istemci e-postasını kopyalayın. Görsel: Yazar.
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
Node.js
Java (istemci kitaplığını Maven ile ekleyin)
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/editarası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=0Bu durumda E-tablo Kimliği:
1s4-xSl1ztvdXmCUISe14XZWduQoJ4Ignz_HrgqsExPIE-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:
A1tek bir hücreyi okurA1:C10bir hücre bloğunu okurSheet1!A:Abir sütunun tamamını okurSheet1!1:1bir satırın tamamını okurDeğerleri getirmek için API iki ana yöntem sunar:
spreadsheets.values.gettek bir aralıktan veri okur. Tam olarak hangi tabloya ya da bloğa ihtiyacınız olduğunu bildiğinizde kullanın.spreadsheets.values.batchGettek 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ızupdatedoğ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,
ValueInputOptionile kontrol edilir.RAWdeğeri gönderdiğiniz haliyle saklarUSER_ENTEREDdeğeri sayfaya yazılmış gibi işlerÖrneğin
=SUM(1,2)gönderirseniz:RAWile düz metin olarak saklanırUSER_ENTEREDile bir formül olarak değerlendirilirÜzerine yazma vs. ekleme
updateileappendarasında seçim yapmak, sayfanızın nasıl yapılandığına bağlıdır.Şunlarda update kullanın:
Şunlarda append kullanın:
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.batchGetTek istekte birden çok aralığa yazmak için
spreadsheets.values.batchUpdateYapısal ve biçimlendirme değişiklikleri için
spreadsheets.batchUpdatekullanın. Bu, en faydalı toplu yöntemdir ve tek istekte birçok işlemi destekler.spreadsheets.batchUpdateile şu değişiklikleri birleştirebilirsiniz:Ö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.updatekullanı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.clearkullanı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.batchUpdateiçindedeleteSheetisteğ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.batchUpdatekullanılarak JSON istekleri halinde gönderilir. Her istek, neyin nerede değiştirileceğini tanımlar.Yaygın biçimlendirme görevleri şunlardır:
Ö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
0tabanlı 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:
Ö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.batchUpdateile uygulamaktır. Bu istekler, verilerin nasıl gruplanacağını, özetleneceğini ve görüntüleneceğini açıklar.API üzerinden şunları yapabilirsiniz:
Ö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:
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:
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:
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:
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:
Ani artışlar görürseniz, bu genellikle verimsiz istek kalıplarını işaret eder.
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:
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:
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:
Daha sonra herhangi bir API çağrısını bu yardımcıyla sarmalayabilirsiniz:
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.batchUpdatevespreadsheets.batchreadsheets.batchUpdategibi 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:
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ırSorun 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:
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:
İ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.