Class ScriptApp

ScriptApp

Komut dosyası yayınlama ve tetikleyicilerine 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

ÖzellikTürAçıklama
AuthModeAuthModeTetiklenen bir işlev aracılığıyla Apps Komut Dosyası'nın hangi yetkili hizmet kategorilerini yürütebileceğini tanımlayan bir numaralandırma.
AuthorizationStatusAuthorizationStatusKomut dosyasının yetkilendirme durumunu belirten bir numaralandırma.
EventTypeEventTypeTetiklenen etkinliğin türünü belirten bir numaralandırma.
InstallationSourceInstallationSourceKomut dosyasının kullanıcıya nasıl eklenti olarak yüklendiğini belirten bir numaralandırma.
TriggerSourceTriggerSourceTetikleyicinin etkinleşmesine neden olan etkinliğin kaynağını belirten bir numaralandırma.
WeekDayWeekdayHaftanın günlerini temsil eden bir numaralandırma.

Yöntemler

YöntemDönüş türüKısa açıklama
deleteTrigger(trigger)voidBelirtilen tetikleyiciyi kaldırarak artık çalışmamasını sağlar.
getAuthorizationInfo(authMode)AuthorizationInfoKullanıcının bir veya daha fazla hizmeti kullanmak üzere 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 geçerli kullanıcı için eklenti olarak nasıl yüklendiğini (örneğin, kullanıcının komut dosyasını Chrome Web Mağazası üzerinden şahsen yükleyip yüklemediğini veya bir alan yöneticisinin tüm kullanıcılar için yükleyip yüklemediğini) belirten bir sıralama değeri döndürür.
getOAuthToken()StringEtkili kullanıcı için OAuth 2.0 erişim jetonunu alır.
getProjectTriggers()Trigger[]Mevcut proje ve geçerli kullanıcıyla ilişkilendirilmiş 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[]Belirtilen dokümanda, bu kullanıcının sahip olduğu tüm yüklenebilir tetikleyicileri yalnızca bu komut dosyası veya eklenti için alır.
getUserTriggers(form)Trigger[]Bu kullanıcının sahip olduğu, belirtilen formda (yalnızca bu komut dosyası veya eklenti için) tüm yüklenebilir tetikleyicileri alır.
getUserTriggers(spreadsheet)Trigger[]Belirtilen e-tabloda, bu kullanıcının sahip olduğu tüm yüklenebilir tetikleyicileri yalnızca bu komut dosyası veya eklenti için alır.
invalidateAuth()voidEtkili kullanıcının mevcut komut dosyasını çalıştırmak için sahip olduğu yetkilendirmeyi geçersiz kılar.
newStateToken()StateTokenBuilderGeri çağırma API'lerinde (OAuth akışı gibi) kullanılabilecek bir durum jetonu için derleyici oluşturur.
newTrigger(functionName)TriggerBuilderTetiklendiğinde belirli bir işlevi çağıran yüklenebilir bir tetikleyici oluşturma sürecini başlatır.

Ayrıntılı belgeler

deleteTrigger(trigger)

Belirtilen tetikleyiciyi kaldırarak artık çalışmamasını sağlar.

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

Parametreler

AdTürAçıklama
triggerTriggerSilinecek tetikleyici.

Yetkilendirme

Bu yöntemi kullanan komut dosyaları, aşağıdaki kapsamların biri veya daha fazlasıyla yetkilendirme gerektirir:

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

getAuthorizationInfo(authMode)

Kullanıcının bir veya daha fazla hizmeti kullanmak üzere 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ınlandıysa, 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, sorunu çözmek için kullanıcıdan 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 modudur. Diğer yetkilendirme modunda kullanıcıların yetkilendirme yapması gerekmediğinden hemen hemen her durumda authMode değeri ScriptApp.getAuthorizationInfo(ScriptApp.AuthMode.FULL) olmalıdır.

Return

AuthorizationInfo: Kullanıcının yetkilendirme durumu hakkında bilgi sağlayabilecek 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 istemek 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ı dahil edin.

Döndürülen kimlik jetonu, kodlanmış bir JSON Web Jetonu'dur (JWT) ve bu jetondan bilgi çıkarmak için jetonun kodu çözülmelidir. Aşağıdaki örnekler, jetonun kodunun nasıl çözüleceğini ve etkili kullanıcının Google profili kimliğinin nasıl çıkarılacağını gösterir.

var idToken = ScriptApp.getIdentityToken();
var body = idToken.split('.')[1];
var decoded = Utilities.newBlob(Utilities.base64Decode(body)).getDataAsString();
var payload = JSON.parse(decoded);
var profileId = payload.sub;
Logger.log('Profile ID: ' + profileId);
Döndürülen alanların (hak taleplerinin) tam listesi için OpenID Connect belgelerine bakın.

Return

String: Varsa kimlik jetonu; aksi takdirde null.


getInstallationSource()

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

Return

InstallationSource: Yükleme 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ışını gerektiren başka bir Google API'sini (ör. Google Picker) yetkilendirmek için yeterliyse komut dosyaları, bu jetonu ileterek ikinci yetkilendirme istemini atlayabilir. Jetonun süresi bir süre sonra (en az birkaç dakika) dolar. Komut dosyaları, yetkilendirme hatalarını işleme almalı ve gerektiğinde yeni bir jeton almak için bu yöntemi çağırmalıdır.

Bu yöntemin döndürdüğü jeton, yalnızca komut dosyasının şu anda ihtiyaç duyduğu kapsamları içerir. Daha önce yetkilendirilmiş olan ancak artık komut dosyası tarafından kullanılmayan kapsamlar, döndürülen jetona dahil edilmez. Komut dosyasının gerektirdiğinden daha fazla OAuth kapsamları gerekiyorsa bunlar komut dosyasının manifest dosyasında belirlenebilir.

Return

String: OAuth 2.0 jetonunun dize gösterimi.


getProjectTriggers()

Mevcut proje ve geçerli kullanıcıyla ilişkilendirilmiş tüm yüklenebilir tetikleyicileri alır.

Logger.log('Current project has ' + ScriptApp.getProjectTriggers().length + ' triggers.');

Return

Trigger[]: Mevcut kullanıcının bu projeyle ilişkilendirilmiş tetikleyicilerinden oluşan bir dizi.

Yetkilendirme

Bu yöntemi kullanan komut dosyaları, aşağıdaki kapsamların biri veya daha fazlasıyla yetkilendirme gerektirir:

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

getScriptId()

Komut dosyası projesinin benzersiz kimliğini alır. Komut dosyası projesinin benzersiz tanımlayıcısını almak için getProjectKey() yerine bu yöntem tercih edilir. Bu kimlik, proje anahtarının daha önce sağlandığı her yerde 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.
var 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)

Belirtilen dokümanda, bu kullanıcının sahip olduğu tüm yüklenebilir tetikleyicileri yalnızca bu komut dosyası veya eklenti için alır. Bu yöntem, diğer komut dosyalarına eklenmiş tetikleyicileri görmek için kullanılamaz.

var doc = DocumentApp.getActiveDocument();
var 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çerebilen bir Google Dokümanlar dosyası.

Return

Trigger[]: Belirli bir dokümanda bu kullanıcının sahip olduğu tetikleyici dizisi.

Yetkilendirme

Bu yöntemi kullanan komut dosyaları, aşağıdaki kapsamların biri veya daha fazlasıyla yetkilendirme gerektirir:

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

getUserTriggers(form)

Bu kullanıcının sahip olduğu, belirtilen formda (yalnızca bu komut dosyası veya eklenti için) tüm yüklenebilir tetikleyicileri alır. Bu yöntem, diğer komut dosyalarına eklenmiş tetikleyicileri görmek için kullanılamaz.

var form = FormApp.getActiveForm();
var 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çerebilen bir Google Formlar dosyası.

Return

Trigger[]: Belirtilen formda bu kullanıcının sahip olduğu tetikleyici dizisi.

Yetkilendirme

Bu yöntemi kullanan komut dosyaları, aşağıdaki kapsamların biri veya daha fazlasıyla yetkilendirme gerektirir:

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

getUserTriggers(spreadsheet)

Belirtilen e-tabloda, bu kullanıcının sahip olduğu tüm yüklenebilir tetikleyicileri yalnızca bu komut dosyası veya eklenti için alır. Bu yöntem, diğer komut dosyalarına eklenmiş tetikleyicileri görmek için kullanılamaz.

var ss = SpreadsheetApp.getActiveSpreadsheet();
var 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çerebilecek bir Google E-Tablolar dosyası.

Return

Trigger[]: Belirli bir e-tabloda bu kullanıcının sahip olduğu tetikleyici dizisi.

Yetkilendirme

Bu yöntemi kullanan komut dosyaları, aşağıdaki kapsamların biri veya daha fazlasıyla yetkilendirme gerektirir:

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

invalidateAuth()

Etkili kullanıcının mevcut komut dosyasını çalıştırmak için sahip olduğu yetkilendirmeyi geçersiz kılar. Mevcut komut dosyasının 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ı yetkilendirme aldıktan sonra ilk çalıştırma olarak çağrılabileceğinden, daha sonra bir işlem gerçekleştirmek isterseniz kullanıcının yetkilendirme iletişim kutusunu tekrar görebilmesi için komut dosyasının sahip olduğu tüm yetkilendirmeyi iptal etmeniz gerekir.

ScriptApp.invalidateAuth();

Dekoratif yastıklar

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


newStateToken()

Geri çağırma API'lerinde (OAuth akışı gibi) kullanılabilecek bir durum jetonu için derleyici 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.
  var scriptUrl = 'https://script.google.com/macros/d/1234567890abcdefghijklmonpqrstuvwxyz';
  var urlSuffix = '/usercallback?state=';
  var stateToken = ScriptApp.newStateToken()
      .withMethod(callbackFunction)
      .withTimeout(120)
      .createToken();
  return scriptUrl + urlSuffix + stateToken;
}

Çoğu OAuth2 akışında, state jetonu doğrudan (geri çağırma URL'sinin parçası olarak değil) yetkilendirme uç noktasına iletilir ve yetkilendirme uç noktası bu jetonu geri çağırma URL'sinin bir 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ıklar ve OAuth2 yetkilendirme sayfası, kullanıcıyı tekrar https://script.google.com/macros/d/1234567890abcdefghijklmonpqrstuvwxyz/usercallback?state=token_generated_with_this_method&other_params_that_include_tokens_or_grants sayfasına yönlendirir.
  • Yukarıdaki yönlendirme (http://script.google.com/... öğesine geri döner), tarayıcı StateTokenBuilder.withMethod(method) tarafından belirtilen yöntemi çağıran /usercallback isteğine neden olur.

Return

StateTokenBuilder: Eyalet 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 sürecini 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ştiğinde çağrılacak işlev. Dahil edilen kitaplıklardaki Library.libFunction1 gibi işlevleri kullanabilirsiniz.

Return

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

Yetkilendirme

Bu yöntemi kullanan komut dosyaları, aşağıdaki kapsamların biri veya daha fazlasıyla yetkilendirme gerektirir:

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

Kullanımdan kaldırılan yöntemler