Google Apps Komut Dosyası'nın yerleşik Google hizmetlerinden veya gelişmiş Google hizmetlerinden özel verilere erişebilmesi için kullanıcı yetkilendirmesi gerekir.
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:
- Algılama: Apps Komut Dosyası, hangi hizmetleri kullandığını belirlemek için komut dosyasını tarar (örneğin,
SpreadsheetAppveyaGmailApp). - Kapsam belirleme: Apps Komut Dosyası, taramaya göre komut dosyasının çalışması için gereken bir dizi OAuth kapsamı belirler.
- Yetkilendirme kontrolü: Komut dosyası çalıştırıldığında kullanıcının bu kapsamları daha önce yetkilendirip yetkilendirmediği kontrol edilir.
- Kullanıcı istemi: Yetkilendirme eksikse kullanıcıdan izin vermesini isteyen bir iletişim kutusu gösterilir.
- 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, Google Workspace eklentisi veya Google Dokümanlar, Google E-Tablolar, Google Slaytlar ya da Google 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. E-Tablolar dosyalarınıza veya Gmail'e erişim) otomatik olarak belirler. Yorum satırı haline getirilmiş kodlar yine de yetkilendirme isteği oluşturabilir. Yetkilendirme gerektiren bir komut dosyası çalıştırıldığında yetkilendirme iletişim kutusu 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:
- Google Hesabınızın güvenlik bölümünü ziyaret edin.
- Üçüncü taraf uygulamaları ve hizmetleriyle olan bağlantılarınız bölümünde Tüm bağlantıları göster'i tıklayın.
- Erişimini iptal etmek istediğiniz komut dosyasını veya uygulamayı seçin.
- APP_NAME ile olan tüm bağlantılarınızı silin'i ve ardından Onayla'yı tıklayın.
Kapsamı geçerli dokümanla sınırlama
E-Tablo hizmetini, Doküman hizmetini, Slaytlar hizmetini veya Formlar hizmetini kullanan bir eklenti ya da başka bir komut dosyası oluşturuyorsanız yetkilendirme iletişim kutusunun, kullanıcının e-tablolarının, dokümanlarının veya formlarının tamamı yerine 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 @NotOnlyCurrentDoc bildiren bir kitaplık varsa ancak birincil komut dosyası aslında mevcut dosyadan daha fazlasına erişim gerektiriyorsa karşıt bir ek açıklama, @OnlyCurrentDoc, kullanılabilir.
Eklentiler için yetkilendirme yaşam döngüsü
E-Tablolar, Dokümanlar, Slaytlar ve Formlar için 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 hizmet ayarlarında yapılandırılan 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, belirtilen süre (ör. 12 saat) geçtikten sonra otomatik olarak yeniden kimlik doğrulamanızı istemiyor.
Manifest dosyasında açık 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ı için önerilir. Böylece, gerekli minimum izinleri kullandığınızdan emin olabilirsiniz.
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ı
oauthScopesdizisine 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.