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
Özellik | Tür | Açıklama |
---|---|---|
AuthMode | AuthMode | Tetiklenen bir işlev aracılığıyla Apps Komut Dosyası'nın hangi yetkili hizmet kategorilerini yürütebileceğini tanımlayan bir numaralandırma. |
AuthorizationStatus | AuthorizationStatus | Komut dosyasının yetkilendirme durumunu belirten bir numaralandırma. |
EventType | EventType | Tetiklenen etkinliğin türünü belirten bir numaralandırma. |
InstallationSource | InstallationSource | Komut dosyasının kullanıcıya nasıl eklenti olarak yüklendiğini belirten bir numaralandırma. |
TriggerSource | TriggerSource | Tetikleyicinin etkinleşmesine neden olan etkinliğin kaynağını belirten bir numaralandırma. |
WeekDay | Weekday | Haftanın günlerini temsil eden bir numaralandırma. |
Yöntemler
Yöntem | Dönüş türü | Kısa açıklama |
---|---|---|
deleteTrigger(trigger) | void | Belirtilen tetikleyiciyi kaldırarak artık çalışmamasını sağlar. |
getAuthorizationInfo(authMode) | AuthorizationInfo | 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. |
getIdentityToken() | String | openid kapsamı verilmişse etkili kullanıcı için bir OpenID Connect kimlik jetonu alır. |
getInstallationSource() | InstallationSource | 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. |
getOAuthToken() | String | Etkili 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() | String | Komut dosyası projesinin benzersiz kimliğini alır. |
getService() | Service | Komut 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() | void | Etkili kullanıcının mevcut komut dosyasını çalıştırmak için sahip olduğu yetkilendirmeyi geçersiz kılar. |
newStateToken() | StateTokenBuilder | Geri çağırma API'lerinde (OAuth akışı gibi) kullanılabilecek bir durum jetonu için derleyici oluşturur. |
newTrigger(functionName) | TriggerBuilder | Tetiklendiğ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
Ad | Tür | Açıklama |
---|---|---|
trigger | Trigger | Silinecek 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
Ad | Tür | Açıklama |
---|---|---|
authMode | AuthMode | yetkilendirme 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
yerine bu yöntem tercih edilir. Bu kimlik, proje anahtarının daha önce sağlandığı her yerde kullanılabilir.getProjectKey()
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
Ad | Tür | Açıklama |
---|---|---|
document | Document | Yü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
Ad | Tür | Açıklama |
---|---|---|
form | Form | Yü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
Ad | Tür | Açıklama |
---|---|---|
spreadsheet | Spreadsheet | Yü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
Ad | Tür | Açıklama |
---|---|---|
functionName | String | Tetikleyici 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