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 Komut Dosyası'nın tetiklenen bir işlev aracılığıyla hangi yetkili hizmet kategorilerini yürütebileceğini tanımlayan bir sıralama. |
Authorization | Authorization | Bir komut dosyasının yetkilendirme durumunu gösteren bir numaralandırma. |
Event | Event | Tetiklenen etkinliğin türünü belirten bir sıralama. |
Installation | Installation | Komut dosyasının kullanıcıya eklenti olarak nasıl yüklendiğini belirten bir sıralama. |
Trigger | Trigger | Tetikleyicinin etkinleştirilmesine neden olan etkinliğin kaynağını belirten bir sıralama. |
Week | Weekday | Haftanın günlerini temsil eden bir sıralama. |
Yöntemler
Yöntem | Dönüş türü | Kısa açıklama |
---|---|---|
delete | void | Belirtilen tetikleyiciyi kaldırarak artık çalışmamasını sağlar. |
get | Authorization | Kullanıcının tüm komut dosyası gereksinimleri için yetkilendirme 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 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ı tarafından Chrome Web Mağazası üzerinden kişisel olarak mı yüklendiği veya bir alan yöneticisi tarafından tüm kullanıcılar için mi yüklendiği). |
get | String | Etkili kullanıcı için OAuth 2.0 erişim jetonunu alır. |
get | Trigger[] | Geçerli proje ve geçerli 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 nesneyi alır. |
get | Trigger[] | Belirtilen dokümanda, bu komut dosyası veya eklenti için yalnızca bu kullanıcının sahip olduğu tüm yüklenebilir tetikleyicileri alır. |
get | Trigger[] | Yalnızca bu komut dosyası veya eklenti için, belirtilen formda bu kullanıcının sahip olduğu tüm yüklenebilir tetikleyicileri alır. |
get | Trigger[] | Belirtilen e-tabloda, bu kullanıcıya ait ve yüklenebilir tüm tetikleyicileri yalnızca bu komut dosyası veya eklenti için alır. |
invalidate | void | Geçerli kullanıcının mevcut komut dosyasını yürütmek için sahip olduğu yetkilendirmeyi geçersiz kılar. |
new | State | Geri çağırma API'sinde (ör. OAuth akışı) kullanılabilen bir durum jetonu için oluşturucu oluşturur. |
new | Trigger | Tetiklendiğinde belirli bir işlevi çağıran, yüklenebilir bir tetikleyici oluşturma sürecini 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ı belgeler
delete Trigger(trigger)
Belirtilen tetikleyiciyi kaldırarak artık çalışmamasını sağlar.
// 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 | Silinecek tetikleyici. |
Yetkilendirme
Bu yöntemi kullanan komut dosyaları, aşağıdaki kapsamlardan biri veya daha fazlasıyla yetkilendirme gerektirir:
-
https://www.googleapis.com/auth/script.scriptapp
get Authorization Info(authMode)
Kullanıcının tüm komut dosyası gereksinimleri için yetkilendirme verip vermediğini kontrol eden bir nesne alır. Nesne, komut dosyası gereksinimlerinden 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şlatılabilir. 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.
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. Diğer yetkilendirme modları, kullanıcıların yetkilendirme vermesini gerektirmediğinden, neredeyse tüm durumlarda auth değeri 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 birinin yetkilendirilmemesi durumunda kullanıcılara bu izinleri verebilecekleri 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şlatılabilir. 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 gerekli 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. Neredeyse tüm durumlarda, başka hiçbir yetkilendirme modu kullanıcıların yetkilendirme vermesini gerektirmediğinden auth değeri 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 yetkilendirme URL'si hakkında bilgi sağlayan bir nesne.
get Identity Token()
openid
kapsamı verilmişse etkili kullanıcı için 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 Token (JWT)'dir ve jetondan bilgi ayıklamak için kodunun çözülmesi gerekir. Aşağıdaki örneklerde jetonun nasıl kodunun çözüleceği ve etkin kullanıcının Google profili kimliğinin nasıl ayıklanacağı 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ı tarafından Chrome Web Mağazası üzerinden kişisel olarak mı yüklendiği veya bir alan yöneticisi tarafından tüm kullanıcılar için mi yüklendiği).
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ışı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 belirli bir süre sonra (en az birkaç dakika) sona erer. Komut dosyaları, yetkilendirme hatalarını işlemeli 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 kendisinin gerektirdiğinin dışında ek OAuth kapsamlarına ihtiyaç duyulursa bunlar komut dosyasının manifest dosyasında belirtilebilir.
Return
String
: OAuth 2.0 jetonunun dize gösterimi.
get Project Triggers()
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şkili tetikleyicilerinin dizisi.
Yetkilendirme
Bu yöntemi kullanan komut dosyaları, aşağıdaki kapsamlardan biri veya daha fazlasıyla yetkilendirme gerektirir:
-
https://www.googleapis.com/auth/script.scriptapp
get Script Id()
Komut dosyası projesinin benzersiz kimliğini alır. Bu yöntem, komut dosyası projesinin benzersiz tanımlayıcısını almak için
yerine tercih edilen yöntemdir. Bu kimlik, proje anahtarının daha önce 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 nesneyi 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 nesne.
get User Triggers(document)
Belirtilen dokümanda, bu komut dosyası veya eklenti için yalnızca bu kullanıcının sahip olduğu tüm yüklenebilir tetikleyicileri alır. Bu yöntem, diğer komut dosyalarına eklenen 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 tetikleyicilerin dizisi.
Yetkilendirme
Bu yöntemi kullanan komut dosyaları, aşağıdaki kapsamlardan biri veya daha fazlasıyla yetkilendirme gerektirir:
-
https://www.googleapis.com/auth/script.scriptapp
get User Triggers(form)
Yalnızca bu komut dosyası veya eklenti için, belirtilen formda bu kullanıcının sahip olduğu tüm yüklenebilir tetikleyicileri alır. Bu yöntem, diğer komut dosyalarına eklenen 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çerebilen bir Google Formlar dosyası. |
Return
Trigger[]
: Belirtilen formda bu kullanıcıya ait tetikleyicilerin dizisi.
Yetkilendirme
Bu yöntemi kullanan komut dosyaları, aşağıdaki kapsamlardan biri veya daha fazlasıyla yetkilendirme gerektirir:
-
https://www.googleapis.com/auth/script.scriptapp
get User Triggers(spreadsheet)
Belirtilen e-tabloda, bu kullanıcıya ait ve yüklenebilir tüm tetikleyicileri yalnızca bu komut dosyası veya eklenti için alır. Bu yöntem, diğer komut dosyalarına eklenen 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[]
: Belirli bir e-tabloda bu kullanıcıya ait tetikleyicilerin dizisi.
Yetkilendirme
Bu yöntemi kullanan komut dosyaları, aşağıdaki kapsamlardan biri veya daha fazlasıyla yetkilendirme gerektirir:
-
https://www.googleapis.com/auth/script.scriptapp
invalidate Auth()
Geçerli kullanıcının mevcut komut dosyasını yürütmek için sahip olduğu yetkilendirmeyi geçersiz kılar. Mevcut komut dosyası için tüm izinleri geçersiz kılmak üzere 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 sonraki ilk çalıştırmada çağrılabildiğinden, daha sonra bir işlem gerçekleştirmek istiyorsanız komut dosyasının sahip olduğu tüm yetkileri iptal etmeniz gerekir. Böylece kullanıcı, yetkilendirme iletişim kutusunu tekrar görebilir.
ScriptApp .invalidateAuth();
Battaniyeler
Error
: Geçersiz kılma işlemi başarısız olduğunda
new State Token()
Geri çağırma API'sinde (ör. OAuth akışı) kullanılabilen 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. 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, yetkilendirme uç noktasına doğrudan (geri çağırma URL'sinin bir parçası olarak değil) iletilir ve yetkilendirme uç noktası da bunu 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ıkladığında OAuth2 yetkilendirme sayfası kullanıcıyı
https://script.google.com/macros/d/1234567890abcdefghijklmonpqrstuvwxyz/usercallback?state=token_generated_with_this_method&other_params_that_include_tokens_or_grants
'ya geri yönlendirir. - Yukarıdaki yönlendirme (
http://script.google.com/...
'ya geri), tarayıcının/usercallback
'ye istek göndermesine 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 sürecini başlatır.
// Creates an edit trigger for a spreadsheet identified by ID. ScriptApp.newTrigger('myFunction') .forSpreadsheet('1234567890abcdefghijklmnopqrstuvwxyz_a1b2c3') .onEdit() .create();
Tetikleyici oluşturmadan önce, ilişkili işlevin gerekli tüm OAuth izinlerine sahip olduğunu doğrulayın.
Parametreler
Ad | Tür | Açıklama |
---|---|---|
function | String | Tetikleyici etkinleştiğ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ı, aşağıdaki kapsamlardan biri veya daha fazlasıyla yetkilendirme gerektirir:
-
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. Yürütme akışı, bir komut dosyasının istediği tüm kapsamları kullanı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 oluşturur.
Bu yöntem yalnızca kullanıcılar komut dosyasını ayrıntılı izni destekleyen bir yüzeyden (ör. Apps Komut Dosyası IDE'si içinden) çalıştırdığında işe yarar. Komut dosyası, Google Workspace eklentisi gibi desteklenmeyen bir yüzeyden eksik izinlerle çalıştırıldığında, yürütmenin başında tüm kapsamları istemek için 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. Neredeyse tüm durumlarda, başka hiçbir yetkilendirme modu kullanıcıların yetkilendirme vermesini gerektirmediğinden 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 bağlıysa 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 oluşturur. Geçersiz olan veya komut dosyası tarafından gerekli olmayan kapsamlar hataya neden olur.
Bu yöntem yalnızca kullanıcılar komut dosyasını ayrıntılı izni destekleyen bir yüzeyden (ör. Apps Komut Dosyası IDE'si içinden) çalıştırdığında işe yarar. Komut dosyası, Google Workspace eklentisi gibi desteklenmeyen bir yüzeyden eksik izinlerle çalıştırıldığında, yürütmenin başında tüm kapsamları istemek için 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. Neredeyse tüm durumlarda, başka hiçbir yetkilendirme modu kullanıcıların yetkilendirme vermesini gerektirmediğinden auth değeri Script olmalıdır. |
oAuthScopes | String[] | Belirli bir yürütme akışının tamamlanması için gereken OAuth kapsamları. |