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
Özellik | Tür | Açıklama |
---|---|---|
AuthMode | AuthMode | Apps 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. |
AuthorizationStatus | AuthorizationStatus | Bir 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 eklenti olarak nasıl 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 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() | InstallationSource | 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) |
getOAuthToken() | String | OAuth 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() | 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 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() | 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'sinde (OAuth akışı gibi) kullanılabilecek bir durum jetonu için oluşturucu 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 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
Ad | Tür | Açıklama |
---|---|---|
authMode | AuthMode | Yetkilendirme 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
yerine komut dosyası projesi için geçerlidir. Bu kimlik her yerde kullanılabilir
proje anahtarının sağlandığı URL'dir.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 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
Ad | Tür | Açıklama |
---|---|---|
document | Document | Yü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
Ad | Tür | Açıklama |
---|---|---|
form | Form | Yü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
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ı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
Ad | Tür | Açıklama |
---|---|---|
functionName | String | Tetikleyici 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