Yetkilendirme
Google Photos Library API'ye yapılan tüm istekler, kimliği doğrulanmış bir kullanıcı tarafından yetkilendirilmelidir.
OAuth 2.0 için yetkilendirme işleminin ayrıntıları bağlı olarak biraz farklılık gösterir bir uygulama kampanyası oluşturacaksınız. Aşağıdaki genel süreç tüm uygulama türleri için geçerlidir:
- Aşağıdakileri yaparak yetkilendirme sürecine hazırlanın:
- Uygulamanızı Google API Konsolu.
- Library API'yi etkinleştirme ve şu gibi OAuth ayrıntılarını alma: istemci kimliği ve istemci gizli anahtarı. Daha fazla bilgi için bkz. Kullanmaya başlayın.
- Uygulama, kullanıcı verilerine erişmek için Google'dan olduğunu varsayalım.
- Google, kullanıcıya içeriği yetkilendirmesini isteyen bir izin ekranı gösterir. bazı verilerini isteyebilir.
- Kullanıcı onaylarsa Google, uygulamaya bir erişim jetonu sağlar Kısa bir süre sonra süresi dolan.
- Uygulama, erişim jetonunu ekleyerek kullanıcı verileri için bir istekte bulunur eklemesi gerekir.
- Google, isteğin ve jetonun geçerli olduğuna karar verirse isteyeceğiz.
Uygulamanız için hangi kapsamların uygun olduğunu belirlemek üzere Yetkilendirme kapsamlarını inceleyin.
Bazı uygulama türleri için bu işlem, yeni erişim jetonları almak için jetonları yenileyin. Ayrıntılı bilgi için Google’a Erişim için OAuth 2.0'ı Kullanma API'ler.
Önbelleğe alma
Verileri güncel tutun.
Medya içeriklerini (küçük resimler, fotoğraflar veya videolar gibi) geçici olarak depolamanız gerekiyorsa performansından dolayı, kullanımımız başına 60 dakikadan uzun bir süre önbelleğe almayın aykırıdır.
Yaklaşık 60 gün sonra süresi dolan baseUrls
öğesini de depolamamalısınız.
dakika.
Bir kullanıcının kitaplığındaki içeriği benzersiz şekilde tanımlayan medya öğesi kimlikleri ve albüm kimlikleri önbelleğe alma kısıtlamasından muaftır. Bu kimlikleri süresiz olarak depolayabilirsiniz (uygulamanızın gizlilik politikasına tabidir). Medya öğesi kimliklerini ve albüm kimliklerini kullan uygun uç noktaları kullanarak erişilebilir URL'leri ve verileri tekrar almak için. Örneğin, Daha fazla bilgi için Medya alma item veya Listing tıklayın.
Yenilenecek çok sayıda medya öğeniz varsa bu öğeleri depolamak daha verimli olabilir. medya öğelerini döndüren ve yeniden yüklemek için sorguyu yeniden gönderen arama parametrelerini dışı verilerdir.
SSL erişimi
HTTPS, aşağıdaki URL:
https://photoslibrary.googleapis.com/v1/service/output?parameters
HTTP üzerinden yapılan istekler reddedilir.
Hata işleme
API'den döndürülen hataların nasıl işleneceği hakkında bilgi için Cloud API'leri Kullanma hataları.
Başarısız istekleri yeniden deneme
İstemciler, eksponansiyel geri yükleme ile 5xx
hatalarını aşağıdaki şekilde yeniden denemelidir:
Üstel geri yükleme. Minimum gecikme 1 s
olmalıdır
izin verilmez.
429
hata için istemci en az 30s
gecikmeyle yeniden deneyebilir. Diğer tüm cihazlar için
hata, yeniden deneme yapılamayabilir. İsteğinizin idempotent olduğundan emin olun ve
hata mesajına göz atın.
Eksponansiyel geri yükleme
Nadiren, isteğiniz yerine getirilirken bir şeyler ters gidebilir.
4XX
veya 5XX
HTTP yanıt kodu ya da TCP bağlantısı bir yerde başarısız olabilir
istemciniz ile Google'ın sunucusu arasında bağlantı kurabilirsiniz. Çoğu zaman aynı işlemi tekrar
isteğinde bulunabilirsiniz. Orijinal istek başarısız olduğunda takip isteği başarılı olabilir. Ancak,
döngü oluşturmamak, Google sunucularına sürekli olarak istek göndermek önemlidir. Bu
Döngüsel davranış istemciniz ile Google arasındaki ağda aşırı yüke neden olabilir ve
birçok taraf için soruna neden olabilir.
Daha iyi bir yaklaşım, denemeler arasındaki gecikmeleri artırarak tekrar denemektir. Genellikle gecikme, her denemede çarpımsal bir faktöre göre artırılır. üstel geri yükleme (backoff) değerleridir.
Ayrıca, uygulamada daha yüksek bir yeniden deneme kodu bulunmadığından da ve kısa bir arka arkaya yinelenen isteklere yol açan çağrı zinciridir.
Google API'lerinin gecikmeli kullanımı
Kötü tasarlanmış API istemcileri hem ve Google'ın sunucularında çalışır. Bu bölümde, proje yönetimiyle ilgili geliştirmeyi öğreneceksiniz. Bu en iyi uygulamalardan yararlanmak, API'lerin yanlışlıkla kötüye kullanımı nedeniyle engellenen uygulama.
Senkronize istekler
Google'ın API'lerine yapılan senkronize edilmiş çok sayıda istek aşağıdaki gibi görünebilir: Dağıtılmış Hizmet Reddi (DDoS) saldırısı ve uygun şekilde ele alınır. Bunu önlemek için API isteklerinin senkronize edilmez.
Örneğin, geçerli saatin saatini gösteren bir uygulama düşünün bölge. Bu uygulama muhtemelen istemci işletim sisteminde alarm kuracaktır dakikanın başında uyandırırsınız. Böylece, gösterilen saat güncellendi. Uygulama, işleme kapsamında herhangi bir API çağrısı yapmamalıdır o alarmla bağlantılı.
Sabit bir alarma karşılık olarak API çağrıları yapmak kötü bir davranıştır, çünkü Farklı zaman aralıklarında bile API çağrılarının dakikanın başında senkronize edilmesi dağıtılmaya başlanır. Kötü tasarlanmış bunu yapması, normalin altmış katı tutarında trafik artışına neden olur. her dakikanın başında.
Bunun yerine, rastgele bir ikinci alarma sahip olmak olası iyi bir tasarımdır seçilebilir. Bu ikinci alarm çaldığında, uygulama herhangi bir numarayı ve sonuçları depolar. Başlangıcının başlangıcında görünümünü güncellemek dakika içinde arama yapmak yerine daha önce saklanan tekrar API'ye dokunun. Bu yaklaşımda, API çağrıları zaman içinde eşit olarak yayılır. Ayrıca, Ekran güncellenirken API çağrılarının oluşturulmasını geciktirmez.
Dakikanın başlangıcı dışında, diğer yaygın senkronizasyon zamanları bir saatin başında, hedefin başlangıcının her gün gece yarısı yapılmalıdır.