- Konu sahibi
- #1
YouTube API anahtarı nedir?
YouTube Data API’de kullanılan standart API anahtarı, uygulamanızın YouTube Data API gibi bir Google API hizmetine yaptığı istekleri bir Google Cloud projesiyle ilişkilendiren kimlik bilgisidir. Uygulamanızın hangi proje üzerinden istek gönderdiğini belirtir ve proje kapsamında kota ile API erişim kurallarının uygulanmasını sağlar. Tek başına kullanıcı hesabına giriş yaptırmaz, özel videoları açmaz ve kullanıcı adına işlem yapma yetkisi vermez.
Nasıl çalışır?
Uygulamanız YouTube’dan herkese açık kanal, video veya oynatma listesi bilgisi istediğinde isteğe API anahtarını ekler. API, anahtarı bağlı olduğu proje ve etkin API hizmetiyle karşılaştırır. İstek geçerliyse yanıt döner; anahtar hatalıysa, ilgili API etkin değilse veya proje kotası ya da erişim kısıtı nedeniyle istek reddedilebilir.
Anahtar
key parametresiyle veya Google API sistem parametrelerinin desteklediği X-Goog-Api-Key başlığıyla iletilebilir. Anahtarlı URL’leri günlük ve tarayıcı geçmişine taşımamak için örnekte başlık kullanılmıştır. Örneğin uygulamanız belirli bir videonun herkese açık bilgilerini almak için şu yapıda bir istek kullanabilir:
Kod:
GET /youtube/v3/videos?part=snippet,statistics&id=VIDEO_ID HTTP/1.1
Host: www.googleapis.com
X-Goog-Api-Key: API_KEY
Buradaki
VIDEO_ID incelenecek videonun kimliği, API_KEY ise Google Cloud projesinde oluşturulan anahtardır. Gerçek uygulamada bu değerleri kaynak koda sabit yazmak yerine sunucu tarafındaki ortam değişkenlerinden okumak daha doğru yaklaşımdır.API anahtarı ile OAuth arasındaki fark
İhtiyacınız olan kimlik doğrulama türü, yapacağınız işleme göre değişir. Herkese açık verileri okumak için çoğunlukla API anahtarı yeterlidir. Kullanıcı hesabına bağlı işlemler veya kullanıcının yetki vermesini gerektiren işlemler için OAuth 2.0 erişim belirteci gerekir.
| İhtiyaç | Genellikle kullanılan yöntem | Örnek |
|---|---|---|
| Herkese açık video bilgilerini okumak | API anahtarı | Başlık, açıklama veya herkese açık istatistikleri istemek |
| Kullanıcının hesabına bağlı işlem yapmak | OAuth 2.0 | Yetkili hesap adına işlem göndermek |
| Hem herkese açık hem yetkili veri kullanmak | İşleme göre API anahtarı ve OAuth | Genel içeriği okumak ve kullanıcı izni gerektiren işlemi ayrı yürütmek |
Basit bir kullanım senaryosu
Bir web uygulamasının kullanıcıdan aldığı bir YouTube video kimliğiyle video başlığını göstermesi gerektiğini varsayalım. Sunucu, video kimliğini doğrular, API anahtarını ortam değişkeninden alır ve yalnızca ihtiyaç duyduğu
snippet bölümünü ister. Başarılı yanıtta uygulama items[0].snippet.title alanını ekranda gösterir.Yanıt boş bir
items listesi döndürürse video bulunamamış, kaldırılmış veya istenen kimliğe erişilememiş olabilir. Kimlik doğrulama hatası alırsanız anahtarın doğru projeye ait olduğunu, ilgili API’nin etkin olduğunu ve istek biçiminin doğru olduğunu kontrol edin. Kota hatasında ise aynı isteği sürekli tekrarlamak yerine gereksiz çağrıları azaltın ve projenin kota durumunu inceleyin.Anahtarı kullanmaya başlama adımları
- Google Cloud üzerinde uygulamanız için bir proje seçin veya oluşturun.
- YouTube Data API v3 hizmetini bu projede etkinleştirin.
- API kimlik bilgileri bölümünden bir API anahtarı oluşturun.
- Anahtarı yalnız YouTube Data API’ye sınırlandırın; uygulama türüne uygun web sitesi veya sunucu IP kısıtını da seçin. Ardından mümkünse uygulamanızın sunucusunda ortam değişkeni olarak saklayın; örneğin değişken adını
YOUTUBE_API_KEYyapın. - Önce tek bir video kimliğiyle küçük bir okuma isteği göndererek anahtarın, etkin API’nin ve istek parametrelerinin çalıştığını doğrulayın.
- İstek başarılıysa hata kontrolü ve kota takibini ekleyin. Önbellek tasarlıyorsanız YouTube’un API verisi saklama/yenileme koşullarını ayrıca izleyin; veriyi süresiz saklamayı varsaymayın.
Anahtar tarayıcı kodunda kullanılıyorsa ziyaretçiler tarafından görülebileceğini kabul edin. Bu durumda anahtarı yalnızca gerekli web kaynakları, alan adları veya API’ler için kısıtlayın. Sunucu tarafında kullanılan anahtarı ise istemciye göndermeyin. Bir anahtar yanlışlıkla herkese açılırsa kısıtlamak veya yenisini oluşturmak gerekir; eski anahtarı yalnızca uygulamadan silmek, daha önce kopyalanmış değerleri geçersiz kılmaz.
Sık sorulan sorular
Anahtar kısıtlandıktan sonra neden istek reddedilebilir?
Anahtarın uygulama kısıtı isteği gönderen ortama uymalıdır. Tarayıcı sitesi için tanımlanan kısıt, sunucudan gelen isteğin IP kısıtıyla aynı şey değildir. Ayrıca yalnız gerekli API’ye izin verildiğini ve aynı projede o API’nin etkin olduğunu kontrol edin; sorunu çözmek için bütün kısıtları kalıcı olarak kaldırmayın.
Sunucuda saklanan anahtar herkese açık bir vekil uç noktayı güvenli yapar mı?
Hayır. Anahtar istemciden gizlense bile herkes sizin uç noktanızı sınırsız çağırabiliyorsa kota tüketilebilir. Kabul edilen video kimliğini ve işlem türünü sınırlandırın, gerekli erişim/istek hızı kontrollerini uygulayın; istemcinin serbestçe hedef URL belirlediği genel bir vekil oluşturmayın.