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ülk | Tür | Açıklama |
---|---|---|
Auth | Auth | Apps Script'in tetiklenmiş bir işlev aracılığıyla hangi yetkili hizmet kategorilerini çalıştırabileceğini tanımlayan bir listeleme. |
Authorization | Authorization | Bir komut dosyasının yetkilendirme durumunu belirten bir listeleme. |
Event | Event | Tetiklenen etkinliğin türünü belirten bir liste. |
Installation | Installation | Komut dosyasının kullanıcıya eklenti olarak nasıl yüklendiğini belirten bir listeleme. |
Trigger | Trigger | Tetikleyicinin etkinleştirilmesine neden olan etkinliğin kaynağını belirten bir listeleme. |
Week | Weekday | Haftanın günlerini temsil eden bir liste. |
Yöntemler
Yöntem | Dönüş türü | Kısa açıklama |
---|---|---|
delete | void | Belirtilen tetikleyiciyi kaldırarak artık çalışmasını engeller. |
get | Authorization | Kullanıcının tüm komut dosyası koşulları için yetki verip vermediğini kontrol eden bir nesne alır. |
get | Authorization | Kullanıcının istenen kapsamlar için yetki verip vermediğini kontrol eden bir nesne alır. |
get | String | openid kapsamı verilmişse etkili kullanıcı için bir Open |
get | Installation | 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). |
get | String | Etkili kullanıcı için OAuth 2.0 erişim jetonunu alır. |
get | Trigger[] | Mevcut proje ve mevcut kullanıcıyla ilişkili tüm yüklenebilir tetikleyicileri alır. |
get | String | Komut dosyası projesinin benzersiz kimliğini alır. |
get | Service | Komut dosyasının web uygulaması olarak yayınlanmasını kontrol etmek için kullanılan bir nesne alır. |
get | 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. |
get | 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. |
get | 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. |
invalidate | void | Geçerli komut dosyasını yürütmek için etkili kullanıcının sahip olduğu yetkiyi geçersiz kılar. |
new | State | Geri çağırma API'sinde (OAuth akışı gibi) kullanılabilecek bir durum jetonu için bir oluşturucu oluşturur. |
new | Trigger | Tetiklendiğinde belirli bir işlevi çağıran, yüklenebilir bir tetikleyici oluşturma işlemini başlatır. |
require | void | Kullanıcının komut dosyası tarafından istenen tüm kapsamlar için izin verip vermediğini doğrular. |
require | void | Kullanıcının istenen kapsamlar için izin verip vermediğini doğrular. |
Ayrıntılı dokümanlar
delete Trigger(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
Ad | Tür | Açıklama |
---|---|---|
trigger | Trigger | Sililecek 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
get Authorization Info(authMode)
Kullanıcının tüm komut dosyası koşulları için yetki verip vermediğini kontrol eden bir nesne alır. Nesne, komut dosyası koşullarından herhangi birinin yetkilendirilmemesi durumunda kullanıcıların bu izinleri vermesi için bir yetkilendirme URL'si de sağlar.
Bazı komut dosyası yürütmeleri, komut dosyası tarafından kullanılan tüm gerekli kapsamlar için kullanıcının izni olmadan başlayabilir. Bu nesnedeki bilgiler, belirli kapsamlar gerektiren kod bölümlerine erişimi kontrol etmenize ve sonraki yürütmeler için bu kapsamların yetkilendirmesini istemenize olanak tanır.
const authInfo = ScriptApp.getAuthorizationInfo(ScriptApp.AuthMode.FULL); const status = authInfo.getAuthorizationStatus(); const url = authInfo.getAuthorizationUrl();
Parametreler
Ad | Tür | Açıklama |
---|---|---|
auth | Auth | Yetkilendirme bilgilerinin istendiği yetkilendirme modu. Başka hiçbir yetkilendirme modu kullanıcıların yetki vermesini gerektirmediğinden, neredeyse tüm durumlarda auth için değer Script olmalıdır. |
Return
Authorization
: Kullanıcının yetkilendirme durumu hakkında bilgi sağlayabilen bir nesne.
get Authorization Info(authMode, oAuthScopes)
Kullanıcının istenen kapsamlar için yetki verip vermediğini kontrol eden bir nesne alır. Nesne, istenen kapsamlardan herhangi biri yetkilendirilmemişse kullanıcıların bu izinleri vermesi için bir yetkilendirme URL'si de sağlar.
Bazı komut dosyası yürütmeleri, komut dosyası tarafından kullanılan tüm gerekli kapsamlar için kullanıcının izni olmadan başlayabilir. Bu nesnedeki bilgiler, belirli kapsamlar gerektiren kod bölümlerine erişimi kontrol etmenize ve sonraki yürütmeler için bu kapsamların yetkilendirilmesini istemenize olanak tanır. Geçersiz olan veya komut dosyası tarafından zorunludur olmayan kapsamlar hataya neden olur.
const authInfo = ScriptApp.getAuthorizationInfo(ScriptApp.AuthMode.FULL, [ 'https://www.googleapis.com/auth/documents', 'https://www.googleapis.com/auth/presentations', ]); const status = authInfo.getAuthorizationStatus(); const url = authInfo.getAuthorizationUrl();
Parametreler
Ad | Tür | Açıklama |
---|---|---|
auth | Auth | Yetkilendirme bilgilerinin istendiği yetkilendirme modu. Diğer hiçbir yetkilendirme modu kullanıcıların yetki vermesini gerektirmediğinden, neredeyse tüm durumlarda auth için değer Script olmalıdır. |
oAuthScopes | String[] | Yetkilendirme bilgilerinin istendiği OAuth kapsamları. |
Return
Authorization
: Kullanıcının yetkilendirme durumu ve bazı izinlerin eksik olması durumunda bir yetkilendirme URL'si hakkında bilgi sağlayan bir nesne.
get Identity Token()
openid
kapsamı verilmişse etkili kullanıcı için bir Openhttps://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 bu jetondan bilgi alabilmek 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}`);
Return
String
: Varsa kimlik jetonu, aksi takdirde null
.
get Installation Source()
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
Installation
: Yüklemenin kaynağı.
get OAuth Token()
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.
get Project Triggers()
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
get Script Id()
Komut dosyası projesinin benzersiz kimliğini alır. Bu,
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.get
Return
String
: Komut dosyası projesinin kimliği.
get Service()
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.
get User Triggers(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
Ad | Tür | Açıklama |
---|---|---|
document | Document | Yü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
get User Triggers(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
Ad | Tür | Açıklama |
---|---|---|
form | Form | Yü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
get User Triggers(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
Ad | Tür | Açıklama |
---|---|---|
spreadsheet | Spreadsheet | Yü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
invalidate Auth()
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ırma sırasında ç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
new State Token()
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,State
tarafından belirtilen yöntemi çağırır.Token Builder.withMethod(method)
Return
State
: Durum jetonu oluşturma sürecine devam etmek için kullanılan bir nesne.
new Trigger(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
Ad | Tür | Açıklama |
---|---|---|
function | String | Tetikleyici etkinleştirildiğinde çağrılacak işlev. Library.libFunction1 gibi dahil edilen kitaplıklardaki işlevleri kullanabilirsiniz. |
Return
Trigger
: 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
require All Scopes(authMode)
Kullanıcının komut dosyası tarafından istenen tüm kapsamlar için izin verip vermediğini doğrular. Bir yürütme akışı, komut dosyasının istediği tüm kapsamlara dayanıyorsa bu yöntemi kullanın. Herhangi bir izin eksikse bu yöntem mevcut yürütmeyi sonlandırır ve eksik izinleri istemek için bir yetkilendirme istemi gösterir.
Bu yöntem yalnızca kullanıcılar komut dosyasını ayrıntılı izinleri destekleyen bir yüzeyden (ör. Apps Komut Dosyası IDE'sinden) çalıştırdığında çalışır. Komut dosyası, Google Workspace eklentisi gibi desteklenmeyen bir yüzeyden eksik izinlerle çalıştırıldığında, tüm kapsamları istemek için yürütmenin başında bir yetkilendirme istemi oluşturur.
ScriptApp .requireAllScopes(ScriptApp.AuthMode.FULL);
Parametreler
Ad | Tür | Açıklama |
---|---|---|
auth | Auth | Komut dosyası kapsamlarının değerlendirilmesi gereken yetkilendirme modu. Başka hiçbir yetkilendirme modu kullanıcıların yetki vermesini gerektirmediğinden, neredeyse tüm durumlarda auth değeri Script olmalıdır. |
require Scopes(authMode, oAuthScopes)
Kullanıcının istenen kapsamlar için izin verip vermediğini doğrular. Bir yürütme akışı bir veya daha fazla hizmete dayanıyorsa bu yöntemi kullanın. Belirtilen izinlerden herhangi biri eksikse bu yöntem mevcut yürütmeyi sonlandırır ve eksik izinleri istemek için bir yetkilendirme istemi gösterir. Geçersiz olan veya komut dosyası tarafından zorunludur olmayan kapsamlar hataya neden olur.
Bu yöntem yalnızca kullanıcılar komut dosyasını ayrıntılı izinleri destekleyen bir yüzeyden (ör. Apps Komut Dosyası IDE'sinden) çalıştırdığında çalışır. Komut dosyası, Google Workspace eklentisi gibi desteklenmeyen bir yüzeyden eksik izinlerle çalıştırıldığında, tüm kapsamları istemek için yürütmenin başında bir yetkilendirme istemi oluşturur.
ScriptApp .requireScopes(ScriptApp.AuthMode.FULL, [ 'https://www.googleapis.com/auth/documents', 'https://www.googleapis.com/auth/presentations', ]);
Parametreler
Ad | Tür | Açıklama |
---|---|---|
auth | Auth | İstenen kapsamların değerlendirilmesi gereken yetkilendirme modu. Diğer hiçbir yetkilendirme modu kullanıcıların yetki vermesini gerektirmediğinden, neredeyse tüm durumlarda auth için değer Script olmalıdır. |
oAuthScopes | String[] | Belirtilen yürütme akışını tamamlamak için gereken OAuth kapsamları. |