Class ScriptApp

ScriptApp

Komut dosyası yayınlama ve tetikleyicilere erişin ve bunları yönetin. Bu sınıf, kullanıcıların komut dosyası oluşturmasına olanak tanır komut dosyasını hizmet olarak yayınlamayı kontrol eder.

Özellikler

ÖzellikTürAçıklama
AuthModeAuthModeApps Komut Dosyası'nın hangi yetkili hizmet kategorilerini yapabileceğini tanımlayan bir numaralandırma bir işlev aracılığıyla yürütülmesini sağlar.
AuthorizationStatusAuthorizationStatusBir komut 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 eklenti olarak nasıl 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 bu komut dosyasını kullanmak için yetkilendirmesi gerekip gerekmediğini belirlemek üzere kullanılan bir nesneyi alır. ve yetkilendirme iletişim kutusunun URL'sini girin.
getIdentityToken()String openid kapsamı verildiyse etkin kullanıcı.
getInstallationSource()InstallationSourceKomut dosyasının geçerli kullanıcı (örneğin, kullanıcının Chrome Web üzerinden kişisel olarak yükleyip yüklemediği (veya bir alan yöneticisinin bunu tüm kullanıcılar için yükleyip yüklemediği)
getOAuthToken()StringOAuth 2.0 erişimini alır jeton olarak yeniden gönderin.
getProjectTriggers()Trigger[]Geçerli proje ve geçerli 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 nesneyi alır.
getUserTriggers(document)Trigger[]Bu komut dosyası için belirtilen dokümanda bu kullanıcının sahip olduğu tüm yüklenebilir tetikleyicileri alır yalnızca eklenti olarak kabul edilir.
getUserTriggers(form)Trigger[]Bu komut dosyası veya eklenti için bu kullanıcıya ait belirtilen formdaki tüm yüklenebilir tetikleyicileri alır gerekir.
getUserTriggers(spreadsheet)Trigger[]Bu komut dosyası için belirtilen e-tabloda bu kullanıcıya ait tüm yüklenebilir tetikleyicileri alır yalnızca eklenti olarak kabul edilir.
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'sinde (OAuth akışı gibi) kullanılabilecek bir durum jetonu için oluşturucu 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 kapsamlardan bir veya daha fazlasıyla yetkilendirme gerektirir:

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

getAuthorizationInfo(authMode)

Kullanıcının bu komut dosyasını kullanmak için yetkilendirmesi gerekip gerekmediğini belirlemek üzere kullanılan bir nesneyi alır. ve yetkilendirme iletişim kutusunun URL'sini girin. Komut dosyası yayınlandıysa yüklenebilir tetikleyiciler kullanan bir eklenti olarak, bu bilgiler kullanıcının gerekli içeriğe sahip olmadığı kod bölümlerine erişimi kontrol etmek için kullanılır yetkilendirme. Alternatif olarak, eklenti kullanıcıdan yetkilendirme için URL'yi açmasını isteyebilir. iletişim kutusunu açar.

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

Parametreler

AdTürAçıklama
authModeAuthModeYetkilendirme bilgilerinin istendiği yetkilendirme modu; inç başka bir yetkilendirme modu olmadığından authMode değeri ScriptApp.getAuthorizationInfo(ScriptApp.AuthMode.FULL) olmalıdır. kullanıcıların, yeni bir web sitesi geliştirmek için

Return

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


getIdentityToken()

openid kapsamı verildiyse etkin kullanıcı. Bu kapsam dahil edilmedi varsayılan olarak belirlemelisiniz ve bunu manifest dosyanıza açık kapsam olarak eklemeniz gerekir. dosyayı isteyebilirsiniz. Ek sonuçlar döndürmek için https://www.googleapis.com/auth/userinfo.email veya https://www.googleapis.com/auth/userinfo.profile kapsamlarını dahil edin belirtmiş olursunuz.

Döndürülen kimlik jetonu, kodlanmış bir JSON Web Jetonu'dur (JWT) ve veri ayıklamak için de kodu çözülmelidir. Aşağıdaki örneklerde kodun nasıl çözüleceği gösterilmektedir jetonu tıklayın ve etkili kullanıcının Google profili kimliğini çıkarın.

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);
. COPPA Connect'e göz atın belgelerini inceleyin.

Return

String — Varsa kimlik jetonu; Aksi takdirde null.


getInstallationSource()

Komut dosyasının geçerli kullanıcı (örneğin, kullanıcının Chrome Web üzerinden kişisel olarak yükleyip yüklemediği (veya bir alan yöneticisinin bunu tüm kullanıcılar için yükleyip yüklemediği)

Return

InstallationSource — Yüklemenin kaynağı.


getOAuthToken()

OAuth 2.0 erişimini alır jeton olarak yeniden gönderin. Komut dosyasının OAuth kapsamları yetkilendirme için yeterliyse Normalde kendi OAuth akışına ihtiyaç duyan başka bir Google API'si (Google Picker gibi) varsa komut dosyaları ikinci yetkilendirme istemini kullanabilirsiniz. Jetonun süresi dolmadan önce ( en az birkaç dakika); komut dosyalarının yetkilendirme hatalarını işlemesi ve yeni bir jeton alabilirsiniz.

Bu yöntemle döndürülen jeton yalnızca komut dosyasının şu anda ihtiyaç duyduğu kapsamları içerir. Daha önce yetkilendirilen ancak artık komut dosyası tarafından kullanılmayan kapsamlar dahil edilmez. geri döndüren jeton. Komut dosyasının dışında ek OAuth kapsamları gerekiyorsa gerekiyorsa komut dosyasının komut dosyasında belirlenebilirler manifest dosyası olarak kaydedin.

Return

String — OAuth 2.0 jetonunun dize temsili.


getProjectTriggers()

Geçerli proje ve geçerli 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şkilendirilmiş tetikleyicilerinin dizisi.

Yetkilendirme

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

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

getScriptId()

Komut dosyası projesinin benzersiz kimliğini alır. Benzersiz tanımlayıcıyı almak için tercih edilen yöntem budur getProjectKey() yerine komut dosyası projesi için geçerlidir. Bu kimlik her yerde kullanılabilir proje anahtarının sağlandığı URL'dir.

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 nesneyi 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 nesnedir.


getUserTriggers(document)

Bu komut dosyası için belirtilen dokümanda bu kullanıcının sahip olduğu tüm yüklenebilir tetikleyicileri alır yalnızca eklenti olarak kabul edilir. 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çerebilecek bir Google Dokümanlar dosyası.

Return

Trigger[] — Belirli bir dokümanda bu kullanıcıya ait bir tetikleyici dizisi.

Yetkilendirme

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

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

getUserTriggers(form)

Bu komut dosyası veya eklenti için bu kullanıcıya ait belirtilen formdaki tüm yüklenebilir tetikleyicileri alır gerekir. 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 biçimde bu kullanıcıya ait bir tetikleyici dizisi.

Yetkilendirme

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

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

getUserTriggers(spreadsheet)

Bu komut dosyası için belirtilen e-tabloda bu kullanıcıya ait tüm yüklenebilir tetikleyicileri alır yalnızca eklenti olarak kabul edilir. 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ıya ait bir tetikleyici dizisi.

Yetkilendirme

Bu yöntemi kullanan komut dosyaları, aşağıdaki kapsamlardan bir 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. Kullanım amacı mevcut komut dosyasının tüm izinlerini geçersiz kılar. Bu, özellikle de artımlılık tek seferlik yetkilendirme olarak etiketlenir. Tek seferlik yetkilendirme işlevleri yalnızca komut dosyası yetkilendirmeyi aldıktan sonra ilk olarak çalıştırmanız gerekir. daha sonra, komut dosyasının sahip olduğu yetkileri iptal etmeniz gerekir. Böylece, kullanıcı iletişim kutusunu tekrar açın.

ScriptApp.invalidateAuth();

Fırlatma

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 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.
  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 yetkilendirme uç noktasına iletilir doğrudan (geri çağırma URL'sinin parçası olarak değil) ve yetkilendirme uç noktası, geri çağırma URL'sinin bir parçasıdır.

Örneğin:

  • Komut dosyası, kullanıcıyı OAuth2 yetkilendirme URL'sine yönlendiriyor: 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 .
  • Yukarıdaki yönlendirme (http://script.google.com/... sayfasına geri dön), tarayıcıya neden olur /usercallback isteği. 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 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. Şuradaki işlevleri kullanabilirsiniz: Library.libFunction1 gibi kitaplıklar dahil edildi.

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 kapsamlardan bir veya daha fazlasıyla yetkilendirme gerektirir:

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

Desteği sonlandırılan yöntemler