Nişan dürbünleri

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

Bu akış sırasında istem, uygulamaya hangi işlemler için izin verilmesi gerektiğini kullanıcıya bildirir. Örneğin, bir eklenti, kullanıcının e-posta iletisini okumak veya takviminde etkinlik oluşturmak için izin isteyebilir. Eklentinin komut dosyası projesi, bu izinleri OAuth kapsamları olarak tanımlar.

URL dizelerini kullanarak manifest dosyanızda kapsamları beyan edersiniz. Yetkilendirme akışı sırasında Apps Komut Dosyası, kapsamın okunabilir bir açıklamasını kullanıcıya sunar. Örneğin, Google Workspace eklentiniz, manifestinizde https://www.googleapis.com/auth/gmail.addons.current.message.readonly olarak yazılan "Read current message" (Mevcut mesajı oku) kapsamını kullanabilir. Yetkilendirme akışı sırasında bu kapsama sahip bir eklenti, kullanıcıdan eklentinin çalışırken e-posta iletilerinizi görüntülemesine izin vermesini ister.

Görüntüleme kapsamları

Aşağıdaki adımları uygulayarak komut dosyası projenizin şu anda gerektirdiği kapsamları görebilirsiniz:

  1. Senaryo projesini açın.
  2. Sol tarafta Genel bakış'ı tıklayın .
  3. "Proje OAuth Kapsamları" bölümündeki kapsamları görüntüleyin.

Ayrıca, komut dosyası projesinin mevcut kapsamlarını proje manifestosunda, oauthScopes alanında da görüntüleyebilirsiniz ancak bu kapsamları yalnızca açıkça ayarladıysanız.

Açık kapsamlar ayarlama

Apps Komut Dosyası, kodunu tarayarak bir komut dosyasının hangi kapsamları gerektirdiğini otomatik olarak belirler. Bu, çoğu komut dosyası için yeterlidir ve size zaman kazandırır. Ancak yayınlanmış eklentilerde kapsamlar üzerinde daha doğrudan kontrol sahibi olmanız gerekir.

Örneğin, Apps Komut Dosyası, bir eklenti komut dosyası projesine varsayılan olarak çok izin verici https://mail.google.com kapsamını verebilir. Bir kullanıcı, bu kapsamda bir komut dosyası projesine yetki verdiğinde projeye kullanıcının Gmail hesabına tam erişim izni verilir. Yayınlanmış eklentiler için bu kapsamı, eklentilerin ihtiyaçlarını karşılayan ancak daha sınırlı bir kapsamla değiştirmeniz gerekir.

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

  1. Eklentinizin şu anda kullandığı kapsamları görüntüleyin. Daha dar bir kapsam kullanmak gibi hangi değişikliklerin yapılması gerektiğini belirleyin.
  2. Eklentinizin manifest dosyasını açın.
  3. oauthScopes etiketli üst düzey alanı bulun. Bu seçenek yoksa ekleyebilirsiniz.
  4. oauthScopes alanı, bir dizeler dizisini belirtir. Projenizin kullandığı kapsamları ayarlamak için bu dizinin içeriğini, projenin kullanmasını istediğiniz kapsamlarla değiştirin. Örneğin, Gmail'i 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ı değişikliklerini kaydedin.

OAuth doğrulaması

Belirli hassas OAuth kapsamlarının kullanılması, eklentinizin yayınlanabilmesi için 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ıtlanmıştı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 eklentisi yayınlamayı planlıyorsanız eklenti, yayınlanabilmesi için belirtilen tüm kısıtlamalara uymalıdır.

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

Visual Studio Code için Google Workspace Geliştirici Araçları uzantısı, kapsamın açıklaması ve hassas veya kısıtlanmış olup olmadığı da dahil olmak üzere tüm kapsamlar için teşhis bilgileri sağlar.

Google Workspace eklentileri için kapsam seçme

Aşağıdaki bölümlerde, Google Workspace eklentileri için yaygın olarak kullanılan kapsamlar verilmiştir.

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'sine erişiyorsa gereklidir. Açık belgenin içeriğine geçici erişim izni verir.

Mevcut E-Tablolar dosyasına erişim https://www.googleapis.com/auth/spreadsheets.currentonly

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

Mevcut Slaytlar dosyasına erişim https://www.googleapis.com/auth/presentations.currentonly

Eklenti, Apps Komut Dosyası Slaytlar API'sine erişiyorsa gereklidir. Herkese açık sunumun 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 eklenti Dokümanlar, E-Tablolar, Slaytlar veya Drive API'sine erişiyorsa gereklidir. Apps Komut Dosyası Advanced Drive Service'i kullanarak uygulama tarafından oluşturulan veya açılan dosyalara dosya başına erişim izni verir. Ancak bu, temel Drive hizmeti kullanılarak benzer işlemlerin yapılmasına izin vermez. Dosya yetkilendirmesi dosya bazında verilir ve kullanıcı uygulamayı yetkilendirmeyi iptal ettiğinde geri alınır.

Gmail

Kullanıcıların Gmail verilerini korumaya yardımcı olmak için Google Workspace eklentilerine özel olarak oluşturulmuş birkaç kapsam vardır. Eklenti manifestinize, eklenti kodunuzun gerektirdiği diğer kapsamlarla birlikte bu kapsamları 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 genişletiyorsa Zorunlu olarak etiketlenen kapsamlar Google Workspace eklenti manifestinize eklenmelidir.

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

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

Eklenti oluşturma işlemi tetikleyicilerini kullanıyorsa zorunludur. Eklentinin geçici olarak yeni taslak iletiler ve yanıtlar oluşturmasına izin verir. Ayrıntılar için Taslak mesaj oluşturma bölümüne bakın. Bu kapsam genellikle oluşturma 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 (ör. konu veya alıcılar) geçici erişim izni verir. İleti içeriğinin okunmasına izin vermez ve erişim jetonu gerektirir.

Eklenti, oluşturma işlemi tetikleyicilerinde meta verileri kullanıyorsa gereklidir. Oluşturma işlemleri için, oluşturma tetikleyicisinin meta verilere erişmesi gerekiyorsa bu kapsam zorunludur. Bu kapsam, yanıt e-posta taslağının alıcı listelerine (alıcı, cc ve bcc) erişmek için oluşturma tetikleyicisini kullanmanıza olanak tanır.

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

Bir kullanıcı etkileşimi (ör. bir eklenti menü öğesi seçildiğinde) üzerine açık iletinin 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 mesajın meta verilerine ve içeriğine geçici erişim izni verir. Ayrıca, açık ileti dizisindeki diğer iletilerin içeriğine erişim izni verir. Erişim jetonu gerektirir.

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

Açılan mesaj da dahil olmak üzere tüm e-posta meta verilerini ve içeriğini okuma Arama sorgusu yürütme veya tüm posta yazışmasını okuma gibi diğer iletilerle ilgili bilgileri okumanız gerekiyorsa zorunludur.

Google Takvim kapsamları

Google Calendar'ı genişleten Google Workspace eklentileri için sık kullanılan kapsamlar aşağıda verilmiştir.

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

Eklenti, Takvim etkinliği meta verilerine erişiyorsa 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 zorunludur. 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 zorunludur. 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.

Google Chat kapsamları

Chat API'yi çağırmak için Google Chat kullanıcısı veya Chat uygulaması olarak kimliğinizi doğrulamanız gerekir. Her kimlik doğrulama türü farklı kapsamlar gerektirir ve tüm Chat API yöntemleri uygulama kimlik doğrulamasını desteklemez.

Chat kapsamları ve kimlik doğrulama türleri hakkında daha fazla bilgi edinmek için Chat API Kimlik doğrulama ve yetkilendirmeye genel bakış başlıklı makaleyi inceleyin.

Aşağıdaki tabloda, desteklenen kimlik doğrulama türlerine göre sık kullanılan Chat API yöntemleri ve kapsamları gösterilmektedir:

Yöntem Kullanıcı kimlik doğrulaması desteklenir. Uygulama kimlik doğrulaması desteklenir. Desteklenen yetkilendirme kapsamları
Mesaj gönder Kullanıcı kimlik doğrulaması ile:
  • chat.messages.create
  • chat.messages
  • chat.import
Uygulama kimlik doğrulaması ile:
  • chat.bot
Alan oluşturma Kullanıcı kimlik doğrulaması ile:
  • chat.spaces.create
  • chat.spaces
  • chat.import
Uygulama kimlik doğrulaması ve yönetici onayı ile (geliştirici önizlemesinde kullanılabilir):
  • chat.app.spaces.create
  • chat.app.spaces
Alan oluşturma ve alana üye ekleme Kullanıcı kimlik doğrulaması ile:
  • chat.spaces.create
  • chat.spaces
Alana kullanıcı ekleme Kullanıcı kimlik doğrulaması ile:
  • chat.memberships
  • chat.memberships.app
  • chat.import
Uygulama kimlik doğrulaması ve yönetici onayı ile (geliştirici önizlemesinde kullanılabilir):
  • chat.app.memberships
Bir Chat alanındaki etkinlikleri veya olayları listeleme Kullanıcı kimlik doğrulaması ile, istekte yer alan her etkinlik türü için bir kapsam kullanmanız gerekir:
  • Mesajlarla ilgili etkinlikler için:
    • chat.messages
    • chat.messages.readonly
  • Tepkilerle ilgili etkinlikler için:
    • chat.messages.reactions
    • chat.messages.reactions.readonly
    • chat.messages
    • chat.messages.readonly
  • Üyeliklerle ilgili etkinlikler için:
    • chat.memberships
    • chat.memberships.readonly
  • Alanla ilgili etkinlikler için:
    • chat.spaces
    • chat.spaces.readonly

Google Drive kapsamları

Aşağıda, Google Drive'ı genişleten Google Workspace eklentileri için sık kullanılan kapsamlar yer almaktadır.

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

Eklenti, kullanıcının Drive'da öğe seçmesiyle tetiklenen bağlama duyarlı bir arayüz uyguluyorsa 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şme izni olup olmadığı ile sınırlıdır.

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

Eklentinin Drive'daki dosyalara tek tek erişmesi gerekiyorsa önerilir. Apps Komut Dosyası Advanced Drive Service'i kullanarak uygulama tarafından oluşturulan veya açılan dosyalara dosya başına erişim izni verir. Ancak bu, temel Drive hizmeti kullanılarak benzer işlemlerin yapı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 dosya erişimi isteği örneği bölümüne bakın.

Erişim jetonları

Google Workspace eklentilerinde kullanılan Gmail kapsamları, kullanıcı verilerini korumak için yalnızca kullanıcı verilerine geçici erişim izni verir. Geçici erişimi etkinleştirmek için GmailApp.setCurrentMessageAccessToken(accessToken) işlevini bağımsız değişken olarak erişim jetonuyla çağırmanız gerekir. Bir işlem 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 jetonunun ayarlanmasına ilişkin bir örnek gösterilmektedir. Bu örnek için gerekli tek kapsam https://www.googleapis.com/auth/gmail.addons.current.message.metadata'dır.

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();
}

Diğer Google Workspace kapsamları

Eklentiniz, diğer Google Workspace veya 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 dosyanızın kapsam listesini düzenlerken, daha uygun bir alternatifle (ör. daha dar bir kapsam) değiştirmediğiniz sürece kapsamları kaldırmayın.

Aşağıdaki tabloda, Google Workspace eklentilerinin sıklıkla kullandığı kapsamların listesi gösterilmektedir:

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

Projenin, mevcut kullanıcının e-posta adresini okumasına izin verir.

Harici hizmetlere yapılan çağrılara izin ver https://www.googleapis.com/auth/script.external_request

Projenin UrlFetch istekleri yapmasına izin verir. Projede Apps Script için OAuth2 kitaplığı kullanılıyorsa da bu işlem gereklidir.

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

Projenin, mevcut kullanıcının yerel ayarını ve saat dilimini öğrenmesine olanak tanır. Ayrıntılar için Kullanıcı yerel ayarına ve saat dilimine erişme başlıklı makaleyi inceleyin.

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

Projenin tetikleyiciler oluşturmasına izin verir.

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

Eklenti, üçüncü taraf hizmetindeki bağlantıları önizliyorsa gereklidir. Kullanıcı etkileşimde bulunurken projenin Google Workspace uygulamasındaki bir bağlantıyı görmesine izin verir. Daha fazla bilgi için Akıllı çiplerle bağlantıları önizleme başlıklı makaleyi inceleyin.

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

Eklenti, üçüncü taraf hizmetinde kaynak oluşturuyorsa gereklidir. Projenin, kullanıcıların kaynak oluşturma formuna gönderdiği bilgileri okumasına ve Google Workspace uygulamasına kaynak bağlantısı eklemesine olanak tanır. Daha fazla bilgi edinmek için @ menüsünden üçüncü taraf kaynakları oluşturma başlıklı makaleyi inceleyin.