Class ScriptApp

MetinUygulama

Komut dosyası yayınlama ve tetikleyicilere erişme ve bunları değiştirme. Bu sınıf, kullanıcıların komut dosyası tetikleyicileri oluşturmasına ve komut dosyasının hizmet olarak yayınlanmasını kontrol etmesine olanak tanır.

Özellikler

MülkTürAçıklama
AuthModeAuthModeApps Script'in tetiklenmiş bir işlev aracılığıyla hangi yetkili hizmet kategorilerini çalıştırabileceğini tanımlayan bir listeleme.
AuthorizationStatusAuthorizationStatusBir komut dosyasının yetkilendirme durumunu belirten bir listeleme.
EventTypeEventTypeTetiklenen etkinliğin türünü belirten bir liste.
InstallationSourceInstallationSourceKomut dosyasının kullanıcıya eklenti olarak nasıl yüklendiğini belirten bir listeleme.
TriggerSourceTriggerSourceTetikleyicinin etkinleştirilmesine neden olan etkinliğin kaynağını belirten bir listeleme.
WeekDayWeekdayHaftanın günlerini temsil eden bir liste.

Yöntemler

YöntemDönüş türüKısa açıklama
deleteTrigger(trigger)voidBelirtilen tetikleyiciyi kaldırarak artık çalışmasını engeller.
getAuthorizationInfo(authMode)AuthorizationInfoKullanıcının bir veya daha fazla hizmeti kullanmak için bu komut dosyasını yetkilendirmesi gerekip gerekmediğini belirlemek ve yetkilendirme iletişim kutusunun URL'sini sağlamak için kullanılan bir nesne alır.
getIdentityToken()Stringopenid kapsamı verilmişse etkili kullanıcı için bir OpenID Connect kimlik jetonu alır.
getInstallationSource()InstallationSourceKomut dosyasının mevcut kullanıcı için eklenti olarak nasıl yüklendiğini belirten bir enum değeri döndürür (örneğin, kullanıcının Chrome Web Mağazası üzerinden kişisel olarak yükleyip yüklemediğini veya bir alan yöneticisinin tüm kullanıcılar için yükleyip yüklemediğini).
getOAuthToken()StringEtkili kullanıcı için OAuth 2.0 erişim jetonunu alır.
getProjectTriggers()Trigger[]Mevcut proje ve mevcut kullanıcıyla ilişkili tüm yüklenebilir tetikleyicileri alır.
getScriptId()StringKomut dosyası projesinin benzersiz kimliğini alır.
getService()ServiceKomut dosyasının web uygulaması olarak yayınlanmasını kontrol etmek için kullanılan bir nesne alır.
getUserTriggers(document)Trigger[]Yalnızca bu komut dosyası veya eklenti için, belirli bir dokümanda bu kullanıcıya ait tüm yüklenebilir tetikleyicileri alır.
getUserTriggers(form)Trigger[]Yalnızca bu komut dosyası veya eklenti için, belirli bir formda bu kullanıcıya ait tüm yüklenebilir tetikleyicileri alır.
getUserTriggers(spreadsheet)Trigger[]Yalnızca bu komut dosyası veya eklenti için, belirli bir e-tabloda bu kullanıcıya ait tüm yüklenebilir tetikleyicileri alır.
invalidateAuth()voidGeçerli komut dosyasını yürütmek için etkili kullanıcının sahip olduğu yetkiyi geçersiz kılar.
newStateToken()StateTokenBuilderGeri çağırma API'sinde (OAuth akışı gibi) kullanılabilecek bir durum jetonu için bir oluşturucu oluşturur.
newTrigger(functionName)TriggerBuilderTetiklendiğinde belirli bir işlevi çağıran, yüklenebilir bir tetikleyici oluşturma işlemini başlatır.

Ayrıntılı dokümanlar

deleteTrigger(trigger)

Belirtilen tetikleyiciyi kaldırarak artık çalışmasını engeller.

// Deletes all triggers in the current project.
const triggers = ScriptApp.getProjectTriggers();
for (let i = 0; i < triggers.length; i++) {
  ScriptApp.deleteTrigger(triggers[i]);
}

Parametreler

AdTürAçıklama
triggerTriggerSililecek tetikleyici.

Yetkilendirme

Bu yöntemi kullanan komut dosyalarının aşağıdaki kapsamlardan bir veya daha fazlası için yetkilendirilmesi gerekir:

  • https://www.googleapis.com/auth/script.scriptapp

getAuthorizationInfo(authMode)

Kullanıcının bir veya daha fazla hizmeti kullanmak için bu komut dosyasını yetkilendirmesi gerekip gerekmediğini belirlemek ve yetkilendirme iletişim kutusunun URL'sini sağlamak için kullanılan bir nesne alır. Komut dosyası, yüklenebilir tetikleyiciler kullanan bir eklenti olarak yayınlanırsa bu bilgiler, kullanıcının gerekli yetkilendirmeye sahip olmadığı kod bölümlerine erişimi kontrol etmek için kullanılabilir. Alternatif olarak, eklenti kullanıcıdan sorunu çözmek için yetkilendirme iletişim kutusunun URL'sini açmasını isteyebilir.

var authInfo = ScriptApp.getAuthorizationInfo(ScriptApp.AuthMode.FULL);
status = authInfo.getAuthorizationStatus();
url = authInfo.getAuthorizationUrl();

Parametreler

AdTürAçıklama
authModeAuthModeYetkilendirme bilgilerinin istendiği yetkilendirme modu; diğer hiçbir yetkilendirme modu kullanıcıların yetki vermesini gerektirmediğinden, authMode için değer neredeyse her zaman ScriptApp.getAuthorizationInfo(ScriptApp.AuthMode.FULL) olmalıdır

Return

AuthorizationInfo: Kullanıcının yetkilendirme durumu hakkında bilgi sağlayabilen bir nesne


getIdentityToken()

openid kapsamı verilmişse etkili kullanıcı için bir OpenID Connect kimlik jetonu alır. Bu kapsam varsayılan olarak dahil edilmez ve isteğinde bulunmak için manifest dosyasına açık kapsam olarak eklemeniz gerekir. Jetonda ek kullanıcı bilgileri döndürmek için https://www.googleapis.com/auth/userinfo.email veya https://www.googleapis.com/auth/userinfo.profile kapsamlarını ekleyin.

Döndürülen kimlik jetonu, kodlanmış bir JSON Web Jetonu (JWT)'dur ve içinden bilgi ayıklamak için kodu çözülmelidir. Aşağıdaki örneklerde, jetonun kodunu çözme ve etkin kullanıcının Google profil kimliğini ayıklama işlemleri gösterilmektedir.

const idToken = ScriptApp.getIdentityToken();
const body = idToken.split('.')[1];
const decoded = Utilities
                    .newBlob(
                        Utilities.base64Decode(body),
                        )
                    .getDataAsString();
const payload = JSON.parse(decoded);

Logger.log(`Profile ID: ${payload.sub}`);
İade edilen alanların (iddiaların) tam listesi için OpenID Connect dokümanlarına bakın.

Return

String: Varsa kimlik jetonu, aksi takdirde null.


getInstallationSource()

Komut dosyasının mevcut kullanıcı için eklenti olarak nasıl yüklendiğini belirten bir enum değeri döndürür (örneğin, kullanıcının Chrome Web Mağazası üzerinden kişisel olarak yükleyip yüklemediğini veya bir alan yöneticisinin tüm kullanıcılar için yükleyip yüklemediğini).

Return

InstallationSource: Yüklemenin kaynağı.


getOAuthToken()

Etkili kullanıcı için OAuth 2.0 erişim jetonunu alır. Komut dosyasının OAuth kapsamları, normalde kendi OAuth akışı gerektiren başka bir Google API'sini (ör. Google Seçici) yetkilendirmek için yeterliyse komut dosyaları, bu jetonu aktararak ikinci yetkilendirme isteminden geçebilir. Jetonun süresi bir süre sonra (en az birkaç dakika) dolar. Komut dosyaları, yetkilendirme hatalarını ele almalı ve gerektiğinde yeni bir jeton almak için bu yöntemi çağırmalıdır.

Bu yöntem tarafından döndürülen jeton yalnızca komut dosyasının şu anda ihtiyaç duyduğu kapsamları içerir. Daha önce yetkilendirilmiş ancak artık komut dosyası tarafından kullanılmayan kapsamlar döndürülen jetona dahil edilmez. Komut dosyasının gerektirdiğinin dışında ek OAuth kapsamları gerekiyorsa bunlar komut dosyasının manifest dosyasında belirtilebilir.

Return

String: OAuth 2.0 jetonunun dize gösterimi.


getProjectTriggers()

Mevcut proje ve mevcut kullanıcıyla ilişkili tüm yüklenebilir tetikleyicileri alır.

Logger.log(
    `Current project has ${ScriptApp.getProjectTriggers().length} triggers.`,
);

Return

Trigger[]: Geçerli kullanıcının bu projeyle ilişkili tetikleyicilerinin dizisi.

Yetkilendirme

Bu yöntemi kullanan komut dosyalarının aşağıdaki kapsamlardan bir veya daha fazlası için yetkilendirilmesi gerekir:

  • https://www.googleapis.com/auth/script.scriptapp

getScriptId()

Komut dosyası projesinin benzersiz kimliğini alır. Bu, getProjectKey() yerine komut dosyası projesinin benzersiz tanımlayıcısını almak için tercih edilen yöntemdir. Bu kimlik, daha önce proje anahtarının sağlandığı tüm yerlerde kullanılabilir.

Return

String: Komut dosyası projesinin kimliği.


getService()

Komut dosyasının web uygulaması olarak yayınlanmasını kontrol etmek için kullanılan bir nesne alır.

// Get the URL of the published web app.
const url = ScriptApp.getService().getUrl();

Return

Service: Komut dosyasının web uygulaması olarak yayınlanmasını gözlemlemek ve kontrol etmek için kullanılan bir nesnedir.


getUserTriggers(document)

Yalnızca bu komut dosyası veya eklenti için, belirli bir dokümanda bu kullanıcıya ait tüm yüklenebilir tetikleyicileri alır. Bu yöntem, diğer komut dosyalarına eklenmiş tetikleyicileri görmek için kullanılamaz.

const doc = DocumentApp.getActiveDocument();
const triggers = ScriptApp.getUserTriggers(doc);
// Log the handler function for the first trigger in the array.
Logger.log(triggers[0].getHandlerFunction());

Parametreler

AdTürAçıklama
documentDocumentYüklenebilir tetikleyiciler içerebilecek bir Google Dokümanlar dosyası.

Return

Trigger[]: Belirtilen dokümanda bu kullanıcıya ait tetikleyici dizisi.

Yetkilendirme

Bu yöntemi kullanan komut dosyalarının aşağıdaki kapsamlardan bir veya daha fazlası için yetkilendirilmesi gerekir:

  • https://www.googleapis.com/auth/script.scriptapp

getUserTriggers(form)

Yalnızca bu komut dosyası veya eklenti için, belirli bir formda bu kullanıcıya ait tüm yüklenebilir tetikleyicileri alır. Bu yöntem, diğer komut dosyalarına eklenmiş tetikleyicileri görmek için kullanılamaz.

const form = FormApp.getActiveForm();
const triggers = ScriptApp.getUserTriggers(form);
// Log the trigger source for the first trigger in the array.
Logger.log(triggers[0].getTriggerSource());

Parametreler

AdTürAçıklama
formFormYüklenebilir tetikleyiciler içerebilecek bir Google Formlar dosyası.

Return

Trigger[]: Belirtilen formda bu kullanıcıya ait tetikleyiciler dizisi.

Yetkilendirme

Bu yöntemi kullanan komut dosyalarının aşağıdaki kapsamlardan bir veya daha fazlası için yetkilendirilmesi gerekir:

  • https://www.googleapis.com/auth/script.scriptapp

getUserTriggers(spreadsheet)

Yalnızca bu komut dosyası veya eklenti için, belirli bir e-tabloda bu kullanıcıya ait tüm yüklenebilir tetikleyicileri alır. Bu yöntem, diğer komut dosyalarına eklenmiş tetikleyicileri görmek için kullanılamaz.

const ss = SpreadsheetApp.getActiveSpreadsheet();
const triggers = ScriptApp.getUserTriggers(ss);
// Log the event type for the first trigger in the array.
Logger.log(triggers[0].getEventType());

Parametreler

AdTürAçıklama
spreadsheetSpreadsheetYüklenebilir tetikleyiciler içerebilen bir Google E-Tablolar dosyası.

Return

Trigger[]: Belirtilen e-tabloda bu kullanıcıya ait tetikleyici dizisi.

Yetkilendirme

Bu yöntemi kullanan komut dosyalarının aşağıdaki kapsamlardan bir veya daha fazlası için yetkilendirilmesi gerekir:

  • https://www.googleapis.com/auth/script.scriptapp

invalidateAuth()

Geçerli komut dosyasını yürütmek için etkili kullanıcının sahip olduğu yetkiyi geçersiz kılar. Mevcut komut dosyasının tüm izinlerini geçersiz kılmak için kullanılır. Bu, özellikle tek seferlik yetkilendirme olarak etiketlenen işlevler için yararlıdır. Tek seferlik yetkilendirme işlevleri yalnızca komut dosyası yetki aldıktan sonra ilk çalıştırmada çağrılabildiğinden, daha sonra bir işlem yapmak isterseniz kullanıcının yetkilendirme iletişim kutusunu tekrar görebilmesi için komut dosyasının sahip olduğu tüm yetkileri iptal etmeniz gerekir.

ScriptApp.invalidateAuth();

Atışlar

Error: Geçersiz kılma işlemi başarısız olduğunda


newStateToken()

Geri çağırma API'sinde (OAuth akışı gibi) kullanılabilecek bir durum jetonu için bir oluşturucu oluşturur.

// Generate a callback URL, given the name of a callback function. The script
// does not need to be published as a web app; the /usercallback URL suffix
// replaces /edit in any script's URL.
function getCallbackURL(callbackFunction) {
  // IMPORTANT: Replace string below with the URL from your script, minus the
  // /edit at the end.
  const scriptUrl =
      'https://script.google.com/macros/d/1234567890abcdefghijklmonpqrstuvwxyz';
  const urlSuffix = '/usercallback?state=';
  const stateToken = ScriptApp.newStateToken()
                         .withMethod(callbackFunction)
                         .withTimeout(120)
                         .createToken();
  return scriptUrl + urlSuffix + stateToken;
}

Çoğu OAuth2 akışında, state jetonu doğrudan yetkilendirme uç noktasına (geri çağırma URL'sinin parçası olarak değil) iletilir ve yetkilendirme uç noktası da jetonu geri çağırma URL'sinin parçası olarak iletir.

Örneğin:

  • Komut dosyası, kullanıcıyı OAuth2 yetkilendirme URL'sine yönlendirir: https://accounts.google.com/o/oauth2/auth?state=token_generated_with_this_method&callback_uri=https://script.google.com/macros/d/1234567890abcdefghijklmonpqrstuvwxyz/usercallback&other_oauth2_parameters
  • Kullanıcı yetkilendir'i tıkladığında OAuth2 yetkilendirme sayfası kullanıcıyı tekrar şu sayfaya yönlendirir: https://script.google.com/macros/d/1234567890abcdefghijklmonpqrstuvwxyz/usercallback?state=token_generated_with_this_method&other_params_that_include_tokens_or_grants
  • Yukarıdaki yönlendirme (http://script.google.com/... adresine geri dönme), /usercallback adresine tarayıcı isteğinin gönderilmesine neden olur. Bu istek, StateTokenBuilder.withMethod(method) tarafından belirtilen yöntemi çağırır.

Return

StateTokenBuilder: Durum jetonu oluşturma sürecine devam etmek için kullanılan bir nesne.


newTrigger(functionName)

Tetiklendiğinde belirli bir işlevi çağıran, yüklenebilir bir tetikleyici oluşturma işlemini başlatır.

// Creates an edit trigger for a spreadsheet identified by ID.
ScriptApp.newTrigger('myFunction')
    .forSpreadsheet('1234567890abcdefghijklmnopqrstuvwxyz_a1b2c3')
    .onEdit()
    .create();

Parametreler

AdTürAçıklama
functionNameStringTetikleyici etkinleştirildiğinde çağrılacak işlev. Library.libFunction1 gibi dahil edilen kitaplıklardaki işlevleri kullanabilirsiniz.

Return

TriggerBuilder: Tetikleyici oluşturma sürecine devam etmek için kullanılan bir nesne.

Yetkilendirme

Bu yöntemi kullanan komut dosyalarının aşağıdaki kapsamlardan bir veya daha fazlası için yetkilendirilmesi gerekir:

  • https://www.googleapis.com/auth/script.scriptapp

Kullanımdan kaldırılan yöntemler