Google Hizmetleri için yetkilendirme

Apps Komut Dosyası, yerleşik Google hizmetlerinden veya gelişmiş Google hizmetlerinden gelen özel verilere erişmek için kullanıcı yetkilendirmesi gerektirir.

Google hizmetleri için yetkilendirme nasıl çalışır?

Bir komut dosyası Google hizmetlerine erişim gerektirdiğinde aşağıdaki genel süreç izlenir:

  1. Algılama: Apps Komut Dosyası, hangi hizmetleri kullandığını belirlemek için komut dosyasını tarar (örneğin, SpreadsheetApp veya GmailApp).
  2. Kapsam belirleme: Apps Komut Dosyası, taramaya göre komut dosyasının çalışması için gereken bir dizi OAuth kapsamı belirler.
  3. Yetkilendirme kontrolü: Komut dosyası çalıştırıldığında kullanıcının bu kapsamları daha önce yetkilendirip yetkilendirmediği kontrol edilir.
  4. Kullanıcı istemi: Yetkilendirme eksikse kullanıcıdan izin vermesini isteyen bir iletişim kutusu gösterilir.
  5. Yürütme: Komut dosyası yetkilendirildikten sonra söz konusu kullanıcı için istenen verilere erişebilir.

İzinler ve komut dosyası türleri

Bir komut dosyasının çalıştırıldığı kullanıcı kimliği (ve dolayısıyla erişebileceği veriler), aşağıdaki tabloda gösterildiği gibi komut dosyasının çalıştırıldığı senaryoya göre değişir.

Komut dosyası türü Komut dosyası şu şekilde çalışır:
Bağımsız, eklenti veya Dokümanlar, E-Tablolar, Slaytlar ya da Formlar'a bağlı Klavyenin başındaki kullanıcı
E-tablodaki özel işlev Anonim kullanıcı; ancak kota sınırları klavyenin başındaki kullanıcı için geçerlidir.
Web uygulaması veya Google Sites gadget'ı Uygulama dağıtılırken seçilen seçeneklere bağlı olarak klavyedeki kullanıcı veya komut dosyası sahibi
Yüklenebilir tetikleyici Tetikleyiciyi oluşturan kullanıcı

Erişim hakları verme

Apps Komut Dosyası, kod taramasına göre yetkilendirme kapsamlarını (ör. Google E-Tablolar dosyalarınıza veya Gmail'e erişim) otomatik olarak belirler. Yorum satırı olarak işaretlenen kodlar yine de yetkilendirme isteği oluşturabilir. Bir komut dosyasının yetkilendirilmesi gerekiyorsa çalıştırıldığında burada gösterilen yetkilendirme iletişim kutularından biri gösterilir.

Daha önce yetkilendirdiğiniz komut dosyaları, kod değişikliğiyle yeni hizmetler eklenirse ek yetkilendirme de ister. Komut dosyasına komut dosyası sahibinin kullanıcı kimliği altında çalışan bir web uygulaması olarak erişirseniz komut dosyaları yetkilendirme isteğinde bulunmayabilir.

Erişim haklarını iptal etme

Bir komut dosyasının verilerinize erişimini iptal etmek için aşağıdaki adımları uygulayın:

  1. Google Hesabınızın izinler sayfasını ziyaret edin. (Gelecekte bu sayfaya gitmek için Google.com'u ziyaret edin, ardından ekranın sağ üst köşesindeki hesap resminizi tıklayın. Ardından Hesabım'ı, "Oturum açma ve güvenlik" bölümünde Bağlı uygulamalar ve siteler'i, ardından Uygulamaları yönet'i tıklayın.)
  2. Yetkisini iptal etmek istediğiniz komut dosyasının adını tıklayın, ardından sağ taraftaki Kaldır'ı ve açılan iletişim kutusunda Tamam'ı tıklayın.

Kapsamı geçerli dokümanla sınırlama

E-Tablo hizmeti, Doküman hizmeti, Slaytlar hizmeti veya Formlar hizmeti'ni kullanan bir eklenti ya da başka bir komut dosyası oluşturuyorsanız yetkilendirme iletişim kutusunun, kullanıcının tüm e-tablolarına, dokümanlarına veya formlarına değil, yalnızca eklentinin ya da komut dosyasının kullanıldığı dosyalara erişim izni istemesini zorunlu kılabilirsiniz. Bunu yapmak için dosya düzeyindeki bir yoruma aşağıdaki JsDoc ek açıklamasını ekleyin:

/**
 * @OnlyCurrentDoc
 */

Komut dosyanızda @OnlyCurrentDoc bildiren bir kitaplık varsa ancak ana komut dosyası aslında mevcut dosyadan daha fazlasına erişim gerektiriyorsa @NotOnlyCurrentDoc adlı karşıt bir ek açıklama kullanılabilir.

Eklentiler için yetkilendirme yaşam döngüsü

Google E-Tablolar, Dokümanlar, Slaytlar ve Formlar'a yönelik eklentiler, genellikle bir dokümana bağlı olan komut dosyalarıyla aynı yetkilendirme modelini kullanır. Ancak belirli durumlarda onOpen(e) ve onEdit(e) işlevleri, bazı ek sorunlara yol açan yetkilendirme gerektirmeyen bir modda çalışır. Daha fazla bilgi için eklentilerin yetkilendirme yaşam döngüsü kılavuzuna bakın.

OAuth uygulaması kullanıcı sınırları

Apps Komut Dosyası projeleri de dahil olmak üzere Google kullanıcı verilerine erişmek için OAuth kullanan uygulamalar, yetkilendirme sınırlarına tabidir. Ayrıntılar için OAuth uygulama kullanıcı sınırları başlıklı makaleyi inceleyin.

Apps Komut Dosyası ile yeniden kimlik doğrulama davranışı

Apps Komut Dosyası, Google Cloud Hizmetleri ayarlarınızda yapılandırdığınız yeniden kimlik doğrulama sıklığını zorunlu kılmaz. Bunun nedeni, Apps Komut Dosyası'nın doğrudan kullanıcı etkileşimi olmadan çalışan tetikleyiciler kullanılarak otomatik olarak çalıştırılabilmesidir. Bu otomatik yürütmeler, yeniden kimlik doğrulama istemlerini tetiklemez. Apps Komut Dosyası uygulamanız, belirttiğiniz süre (ör. 12 saat) geçtikten sonra sizden otomatik olarak yeniden kimlik doğrulama yapmanızı istemez.

Manifest dosyasında açıkça belirtilmiş kapsamlar ayarlama

Apps Komut Dosyası, işlev çağrıları için kodu tarayarak gerekli kapsamları otomatik olarak belirler. Daha fazla kontrole ihtiyacınız varsa kapsamları proje manifestinde (appsscript.json) açıkça ayarlayabilirsiniz. Bu, yayınlanmış komut dosyalarında gerekli minimum izinleri kullandığınızdan emin olmak için önerilir.

Talimatlar için Açık kapsamlar ayarlama başlıklı makaleyi inceleyin.

Sorun giderme

  • Tetikleyici çalıştırılırken"Yetkilendirme gerekli" hatası: Tetikleyiciler, bunları oluşturan kullanıcı tarafından yetkilendirilmelidir. Yeni izinler gerektiren bir kod eklerseniz yetkilendirme iletişim kutusunu tetiklemek için komut dosyası düzenleyicisinde bir işlevi manuel olarak bir kez çalıştırmanız gerekir.
  • Kapsamlar güncellenmiyor: Kodunuzu güncellediyseniz ancak yetkilendirme iletişim kutusunda değişiklikler yansıtılmıyorsa projeyi kaydetmeyi ve düzenleyiciyi yenilemeyi deneyin. Manifest dosyasında açık kapsamlar kullanıyorsanız yeni kapsamı oauthScopes dizisine eklediğinizden emin olun.
  • "Bu uygulama engellendi" veya doğrulanmamış uygulama uyarısı: Bu durum, komut dosyanızda hassas veya kısıtlanmış kapsamlar kullanılıyorsa ve komut dosyanız Google tarafından doğrulanmamışsa ortaya çıkar. OAuth istemci doğrulaması başlıklı makaleye bakın.