Nişan dürbünleri

Kullanıcıların, verilerine erişen veya kendi adlarına işlem yapan eklentileri ve diğer uygulamaları yetkilendirmesi gerekir. Bir kullanıcı bir eklentiyi ilk kez çalıştırdığında, eklentinin kullanıcı arayüzü yetkilendirme akışını başlatmak için bir yetkilendirme istemi sunar.

Bu akış sırasında istem kullanıcıya uygulamanın ne yapmak istediğini söyler. Örneğin bir eklenti, bir kullanıcının e-posta mesajını okuma veya takviminde etkinlik oluşturma izni isteyebilir. Eklentinin komut dosyası projesi, bu izinleri OAuth kapsamları olarak tanımlar.

Kapsamları manifest dosyanızda URL dizeleri kullanarak açıklarsınız. Yetkilendirme akışı sırasında Apps Komut Dosyası, kullanıcıya kapsamın kullanıcılar tarafından okunabilecek bir açıklamasını sunar. Örneğin, Google Workspace Eklentiniz, manifest dosyanıza https://www.googleapis.com/auth/gmail.addons.current.message.readonly olarak yazılan "Mevcut mesajı oku" kapsamını kullanabilir. Yetkilendirme akışı sırasında, bu kapsama sahip bir eklenti, kullanıcıdan eklentiye şu işlemleri yapmasına izin vermesini ister: Eklenti çalışırken e-posta mesajlarınızı görüntüleme.

Kapsamları görüntüleme

Aşağıdakileri yaparak komut dosyası projenizin şu anda gerektirdiği kapsamları görebilirsiniz:

  1. Komut dosyası projesini açın.
  2. Solda, Genel bakış'ı tıklayın .
  3. Kapsamları, "Proje OAuth Kapsamları" altında görüntüleyin.

Komut dosyası projesinin geçerli kapsamlarını, yalnızca bu kapsamları açık olarak ayarladıysanız proje manifestinde oauthScopes alanının altında da görüntüleyebilirsiniz.

Açık kapsamları ayarlama

Apps Komut Dosyası, bir komut dosyasının kodunu onları gerektiren işlev çağrıları için tarayarak hangi kapsamlara ihtiyaç duyduğunu otomatik olarak belirler. Çoğu komut dosyası için bu işlem yeterlidir ve size zaman kazandırır ancak yayınlanan eklentiler için kapsamlar üzerinde daha doğrudan kontrole sahip olmanız gerekir.

Örneğin, Apps Komut Dosyası, bir eklenti komut dosyası projesine varsayılan olarak çok geniş kapsamlı https://mail.google.com kapsamını verebilir. Bir kullanıcı bu kapsamla bir komut dosyası projesini yetkilendirdiğinde projeye, kullanıcının Gmail hesabına tam erişim verilir. Yayınlanan eklentiler için bu kapsamı, eklentilerin ihtiyaçlarını karşılayan ve daha fazlasını içermeyen daha sınırlı bir grupla değiştirmeniz gerekir.

Komut dosyası projenizin manifest dosyasını düzenleyerek kullandığı kapsamları açıkça ayarlayabilirsiniz. Manifest alanı oauthScopes, eklenti tarafından kullanılan tüm kapsamları içeren bir dizidir. Projenizin kapsamlarını belirlemek için aşağıdakileri yapın:

  1. Eklentinizin şu anda kullandığı kapsamları görüntüleyin. Hangi değişikliklerin yapılması gerektiğini belirleyin, örneğin daha dar bir kapsam kullanmak.
  2. Eklentinizin manifest dosyasını açın.
  3. oauthScopes etiketli en üst düzey alanı bulun. Yoksa onu ekleyebilirsiniz.
  4. oauthScopes alanı bir dize dizisi belirtir. Projenizin kullandığı kapsamları ayarlamak için bu dizinin içeriğini, kullanmasını istediğiniz kapsamlarla değiştirin. Örneğin, Gmail'in kapsamını genişleten bir Google Workspace eklentisi için aşağıdakilere sahip olabilirsiniz:

    {
      ...
      "oauthScopes": [
        "https://www.googleapis.com/auth/gmail.addons.current.message.metadata",
        "https://www.googleapis.com/auth/userinfo.email"
      ],
      ...
    }
    
  5. Manifest dosyasındaki değişiklikleri kaydedin.

OAuth doğrulaması

Belirli hassas OAuth kapsamlarını kullanmak, eklentinin yayınlanabilmesi için önce OAuth istemci doğrulamasından geçmesini gerektirebilir. Daha fazla bilgi için aşağıdaki kılavuzlara bakın:

Kısıtlanmış kapsamlar

Belirli kapsamlar kısıtlanır ve kullanıcı verilerinin korunmasına yardımcı olan ek kurallara tabidir. Bir veya daha fazla kısıtlanmış kapsam kullanan bir Gmail veya Düzenleyici Eklentisini yayınlamayı planlıyorsanız, eklentinin yayınlanabilmesi için belirtilen tüm kısıtlamalara uyması gerekir.

Yayınlamadan önce kısıtlanmış kapsamların tam listesini inceleyin. Eklentiniz bunlardan herhangi birini kullanıyorsa yayınlamadan önce Belirli API kapsamları için ek gereksinimler'e uymanız gerekir.

Takvim kapsamları

Aşağıda, Google Takvim'in kapsamını genişleten Google Workspace Eklentileri için sık kullanılan kapsamları bulabilirsiniz.

Kapsam
Etkinlik meta verilerine erişme https://www.googleapis.com/auth/calendar.addons.execute

Eklenti, Takvim etkinliği meta verilerine erişirse gereklidir. Eklentinin, etkinlik meta verilerine erişmesine izin verir.

Kullanıcı tarafından oluşturulan etkinlik verilerini okuma https://www.googleapis.com/auth/calendar.addons.current.event.read

Eklentinin kullanıcı tarafından oluşturulan etkinlik verilerini okuması gerekiyorsa gereklidir. Eklentinin, kullanıcı tarafından oluşturulan etkinlik verilerine erişmesine izin verir. Bu veriler yalnızca addOns.calendar.eventAccess manifest alanı READ veya READ_WRITE olarak ayarlanmışsa kullanılabilir.

Kullanıcı tarafından oluşturulan etkinlik verilerini yazma https://www.googleapis.com/auth/calendar.addons.current.event.write

Eklentinin kullanıcı tarafından oluşturulan etkinlik verilerini yazması gerekiyorsa gereklidir. Eklentinin, kullanıcı tarafından oluşturulan etkinlik verilerini düzenlemesine izin verir. Bu veriler yalnızca addOns.calendar.eventAccess manifest alanı WRITE veya READ_WRITE olarak ayarlanmışsa kullanılabilir.

Drive kapsamları

Aşağıda, Google Drive'ı genişleten Google Workspace Eklentileri için sık kullanılan kapsamları bulabilirsiniz.

Kapsam
Seçili öğe meta verilerini oku https://www.googleapis.com/auth/drive.addons.metadata.readonly

Eklenti, kullanıcı Drive'da öğe seçtiğinde tetiklenen bir içeriğe dayalı arayüz uygularsa gereklidir. Eklentinin, kullanıcının Google Drive'da seçtiği öğelerle ilgili sınırlı meta verileri okumasına izin verir. Meta veriler öğenin kimliği, başlığı, MIME türü, simge URL'si ve eklentinin öğeye erişim izni olup olmadığıyla sınırlıdır.

Dosya başına erişim https://www.googleapis.com/auth/drive.file

Eklentinin Drive dosyalarına tek tek erişmesi gerekiyorsa önerilir. Apps Komut Dosyası Gelişmiş Drive Hizmeti kullanılarak uygulama tarafından oluşturulan veya açılan dosyalara dosya başına erişim izni verir. Ancak bu ayar, temel Drive hizmeti kullanılarak benzer işlemlerin kullanılmasına izin vermez. Dosya yetkilendirmesi, dosya bazında verilir ve kullanıcı uygulamanın yetkisini kaldırdığında iptal edilir.

Seçili dosyalar için dosyaya erişim isteme örneğine göz atın.

Gmail eklentisi kapsamları

Kullanıcıların Gmail verilerini korumaya yardımcı olması amacıyla Google Workspace Eklentileri için özel olarak oluşturulmuş birkaç kapsam vardır. Bu kapsamları, eklenti kodunuzun gerektirdiği diğer tüm işlemlerle birlikte eklenti manifestinize açıkça eklemeniz gerekir.

Aşağıda, Gmail'i genişleten Google Workspace Eklentileri için sık kullanılan kapsamlar verilmiştir. Eklentiniz Gmail'i de kapsıyorsa Zorunlu olarak etiketli olanlar, Google Workspace Eklenti manifestinize eklenmelidir.

Ayrıca, eklentinizdeki çok geniş https://mail.google.com kapsamını, eklentinizin ihtiyaç duyduğu etkileşimlere izin vermeyen ve daha dar kapsamlı bir kapsam grubuyla değiştirdiğinizden emin olun.

Kapsam
Yeni taslaklar oluşturma https://www.googleapis.com/auth/gmail.addons.current.action.compose

Eklenti, oluşturma işlemi tetikleyicileri kullanıyorsa gereklidir. Eklentinin geçici olarak yeni taslak iletiler ve yanıtlar oluşturmasına izin verir. Ayrıntılar için Taslak iletiler oluşturma bölümüne bakın. Bu kapsam genellikle yazma işlemleriyle de kullanılır. Erişim jetonu gerektirir.

Açık mesaj meta verilerini okuma https://www.googleapis.com/auth/gmail.addons.current.message.metadata

Açık iletinin meta verilerine (konu veya alıcılar gibi) geçici erişim izni verir. Mesaj içeriğinin okunmasına izin vermez ve erişim jetonu gerektirir.

Eklenti, oluşturma işlemi tetikleyicilerinde meta veri kullanıyorsa gereklidir. Oluşturma işlemleri için bu kapsam, bir oluşturma tetikleyicisinin meta verilere erişmesi gerektiğinde gereklidir. Pratikte bu kapsam, oluşturma işleminin bir yanıt e-posta taslağının erişim alıcı listelerini (kime:, cc: ve bcc:) tetiklemesine olanak tanır.

Açık ileti içeriğini oku https://www.googleapis.com/auth/gmail.addons.current.message.action

Eklenti menü öğesi seçildiğinde olduğu gibi, kullanıcı etkileşiminden sonra açık mesajın içeriğine erişim izni verir. Erişim jetonu gerektirir.

Açık mesaj dizisi içeriğini okuma https://www.googleapis.com/auth/gmail.addons.current.message.readonly

Açık iletinin meta verilerine ve içeriğine geçici erişim izni verir. Ayrıca açık ileti dizisindeki diğer mesajların içeriğine erişim izni verir. Erişim jetonu gerektirir.

Tüm mesaj içeriklerini ve meta verileri okuma https://www.googleapis.com/auth/gmail.readonly

Açık ileti de dahil olmak üzere tüm e-posta meta verilerini ve içeriğini okuma. Arama sorgusu yürütme veya posta ileti dizisinin tamamını okuma gibi işlemlerde diğer iletilerle ilgili bilgileri okumanız gerekiyorsa gereklidir.

Erişim jetonları

Google Workspace Eklentilerinde kullanılan Gmail kapsamları, kullanıcı verilerini korumak için kullanıcı verilerine yalnızca geçici erişim izni verir. Geçici erişimi etkinleştirmek için erişim jetonunu bağımsız değişken olarak kullanarak GmailApp.setCurrentMessageAccessToken(accessToken) işlevini çağırmanız gerekir. Bir eylem etkinliği nesnesinden erişim jetonu almanız gerekir.

Aşağıda, bir mesajın meta verilerine erişime izin vermek için erişim jetonu ayarlamayla ilgili bir örnek gösterilmektedir. Bu örnek için gereken tek kapsam https://www.googleapis.com/auth/gmail.addons.current.message.metadata değeridir.

function readSender(e) {
  var accessToken = e.gmail.accessToken;
  var messageId = e.gmail.messageId;

  // The following function enables short-lived access to the current
  // message in Gmail. Access to other Gmail messages or data isn't
  // permitted.
  GmailApp.setCurrentMessageAccessToken(accessToken);
  var mailMessage = GmailApp.getMessageById(messageId);
  return mailMessage.getFrom();
}

Düzenleyici kapsamları

Aşağıda, Dokümanlar, E-Tablolar ve Slaytlar'ı genişleten Google Workspace eklentileri için sık kullanılan kapsamlar verilmiştir.

Kapsam
Mevcut Dokümanlar dosyasına erişim https://www.googleapis.com/auth/documents.currentonly

Eklenti, Apps Script Docs API'ye erişirse gereklidir. Açık belgenin içeriğine geçici erişim izni verir.

Mevcut E-Tablolar dosya erişimi https://www.googleapis.com/auth/spreadsheets.currentonly

Eklenti, Apps Script Sheets API'ye erişirse gereklidir. Açık e-tablonun içeriğine geçici erişim izni verir.

Mevcut Slaytlar dosya erişimi https://www.googleapis.com/auth/presentations.currentonly

Eklenti, Apps Script Slaytlar API'sine erişirse gereklidir. Açık sununun içeriğine geçici erişim izni verir.

Dosya başına erişim https://www.googleapis.com/auth/drive.file

Eklentinin onFileScopeGrantedTrigger kullanması ve Dokümanlar, E-Tablolar, Slaytlar veya Drive API'ye erişmesi için gereklidir. Apps Komut Dosyası Gelişmiş Drive Hizmeti kullanılarak uygulama tarafından oluşturulan veya açılan dosyalara dosya başına erişim izni verir. Ancak bu ayar, temel Drive hizmeti kullanılarak benzer işlemlerin kullanılmasına izin vermez. Dosya yetkilendirmesi, dosya bazında verilir ve kullanıcı uygulamanın yetkisini kaldırdığında iptal edilir.

Diğer kapsamlar

Eklentiniz başka Apps Komut Dosyası hizmetlerini kullanıyorsa ek kapsamlar gerektirebilir. Çoğu durumda Apps Komut Dosyası'nın bu kapsamları algılamasına ve manifesti otomatik olarak güncellemesine izin verebilirsiniz. Manifest'inizin kapsam listesini düzenlerken, daha dar bir kapsam gibi daha uygun bir alternatifle değiştirmediğiniz sürece hiçbir kapsamı kaldırmayın.

Referans olması amacıyla, genellikle Google Workspace Eklentileriyle birlikte kullanılan Apps Komut Dosyası kapsamlarının bir listesini aşağıda bulabilirsiniz:

Kapsam
Kullanıcının e-posta adresini okuma https://www.googleapis.com/auth/userinfo.email

Projenin, geçerli kullanıcının e-posta adresini okumasına izin verir.

Harici hizmetlere yapılan aramalara izin ver https://www.googleapis.com/auth/script.external_request

Projenin UrlFetch isteklerinde bulunmasına izin verir. Proje, Apps Komut Dosyası için OAuth2 kitaplığını kullanıyorsa da bu gereklidir.

Kullanıcının yerel ayarını ve saat dilimini okuma https://www.googleapis.com/auth/script.locale

Projenin, geçerli kullanıcının yerel ayarını ve saat dilimini öğrenmesini sağlar. Ayrıntılar için Kullanıcının yerel ayarına ve saat dilimine erişme bölümüne bakın.

Tetikleyiciler oluşturma https://www.googleapis.com/auth/script.scriptapp

Projenin tetikleyici oluşturmasına izin verir.

Üçüncü taraf bağlantılarını önizleme https://www.googleapis.com/auth/workspace.linkpreview

Eklenti, bir üçüncü taraf hizmetinin bağlantılarını önizlediğinde gereklidir. Kullanıcı bir Google Workspace uygulamasıyla etkileşimde bulunurken projenin, Google Workspace uygulamasındaki bir bağlantıyı görmesine izin verir. Daha fazla bilgi edinmek için Bağlantıları akıllı çiplerle önizleme başlıklı makalede bulabilirsiniz.

Üçüncü taraf kaynakları oluşturma https://www.googleapis.com/auth/workspace.linkcreate

Eklenti, üçüncü taraf bir hizmette kaynak oluşturuyorsa gereklidir. Projenin, kullanıcıların kaynak oluşturma formuna gönderdiği bilgileri okumasına ve bir Google Workspace uygulamasındaki kaynağın bağlantısını eklemesine izin verir. Daha fazla bilgi için @ menüsünden üçüncü taraf kaynakları oluşturma bölümüne bakın.