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 bir veya daha fazla hizmeti kullanmak için 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. |
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[] | Geçerli 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. |
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 bir veya daha fazla hizmeti kullanmak için 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ınlanırsa 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 kullanıcıdan sorunu çözmek için 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 |
---|---|---|
auth | Auth | Yetkilendirme bilgilerinin istendiği yetkilendirme modu; diğer hiçbir yetkilendirme modu kullanıcıların yetki vermesini gerektirmediğinden, auth için değer neredeyse her zaman Script olmalıdır |
Return
Authorization
: Kullanıcının yetkilendirme durumu hakkında bilgi sağlayabilen 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 içinden bilgi ayıklamak 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}`);İade edilen alanların (iddiaların) tam listesi için Open
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()
Geçerli 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ırmada ç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