Bir Apps Komut Dosyası projesinde işlev çalıştırır. Komut dosyası projesi, Apps Komut Dosyası API'si ile kullanılmak üzere dağıtılmalıdır ve çağıran uygulama aynı Cloud Platform projesini paylaşmalıdır.
Bu yöntem, Yetkilendirme bölümünde listelenen kapsamların en az birini içeren bir OAuth 2.0 jetonuyla yetkilendirme gerektirir. Yetkilendirme gerektirmeyen komut dosyası projeleri bu API üzerinden yürütülemez. Kimlik doğrulama jetonuna dahil edilecek doğru kapsamları bulmak için komut dosyası projesinin Genel Bakış sayfasını açın ve "Proje OAuth Kapsamları"na gidin.
403, PERMISSION_DENIED: The caller does not have permission hatası, isteği yetkilendirmek için kullanılan Cloud Platform projesinin, komut dosyası tarafından kullanılanla aynı olmadığını gösterir.
HTTP isteği
POST https://script.googleapis.com/v1/scripts/{deploymentId}:run
URL, gRPC Kod Dönüştürme söz dizimini kullanır.
Yol parametreleri
| Parametreler | |
|---|---|
deploymentId |
API çalıştırılabilir dosyası dağıtımının dağıtım kimliği. Komut dosyası düzenleyicide Dağıt > Dağıtımları yönet bölümünde dağıtım kimliğini bulun. |
İstek içeriği
İstek içeriği aşağıdaki yapıyla birlikte verileri içerir:
| JSON gösterimi |
|---|
{ "function": string, "parameters": [ value ], "sessionState": string, "devMode": boolean } |
| Alanlar | |
|---|---|
function |
Belirtilen komut dosyasında yürütülecek işlevin adı. Ad, parantez veya parametre içermez. Bu, |
parameters[] |
Yürütülen işleve aktarılacak parametreler. Her parametrenin nesne türü, Apps Komut Dosyası'ndaki beklenen türle eşleşmelidir. Parametreler, Apps Komut Dosyası'na özgü nesne türleri (ör. |
sessionState |
Kullanımdan kaldırıldı. Yalnızca Android eklentileriyle kullanılabilir. Google Dokümanlar veya E-Tablolar için Android uygulamasında kullanıcının mevcut oturumunu temsil eden bir kimlik. Eklentiyi başlatan Intent'te ek veri olarak bulunur. Bir Android eklentisi oturum durumuyla çalıştırıldığında bağlı bir komut dosyasının ayrıcalıklarını kazanır. Yani kullanıcının mevcut imleç konumu (Dokümanlar'da) veya seçili hücre (E-Tablolar'da) gibi bilgilere erişebilir. Eyaleti almak için |
devMode |
|
Yanıt gövdesi
Başarılı olursa yanıt metni aşağıdaki yapıyla birlikte verileri içerir:
run ile başlatılan bir Apps Komut Dosyası işlevinin yürütülmesinin temsili. Yürütme yanıtı, işlevin yürütmesi tamamlanana kadar gelmez. Maksimum yürütme çalışma zamanı, Apps Script kotaları kılavuzunda listelenmiştir.
Yürütme başladıktan sonra dört sonuçtan biri elde edilebilir:
- Komut dosyası işlevi başarılı bir şekilde döndürülürse
responsealanı, işlevin dönüş değerini içeren birExecutionResponsenesnesi içerir. Bu değer, nesneninresultalanında yer alır. - Komut dosyası işlevi (veya Apps Komut Dosyası'nın kendisi) bir istisna oluşturursa
erroralanı birStatusnesnesi içerir.Statusnesnesinindetailsalanı, hatanın niteliği hakkında bilgi sağlayan tek birExecutionErrornesnesi içeren bir dizi içerir. - Yürütme henüz tamamlanmadıysa
donealanıfalseolur veresponseveyaerroralanları mevcut olmaz. -
runçağrısı başarısız olursa (örneğin, hatalı biçimlendirilmiş bir istek veya yetkilendirme hatası nedeniyle) yöntem, yanıt gövdesi için farklı bir biçimle 4XX aralığında bir HTTP yanıt kodu döndürür. İstemci kitaplıkları, 4XX yanıtını otomatik olarak bir istisna sınıfına dönüştürür.
| JSON gösterimi |
|---|
{ "done": boolean, // Union field |
| Alanlar | |
|---|---|
done |
Bu alan, komut dosyası yürütmesinin tamamlanıp tamamlanmadığını gösterir. Tamamlanan bir yürütmede, yürütülen |
result birleşik alanı. İşlem sonucu. error veya geçerli bir response olabilir. done == false ise error öğesi de response öğesi de ayarlanmaz. done == true ise error veya response öğelerinden yalnızca biri ayarlanabilir. Bazı hizmetler sonuç vermeyebilir. result aşağıdakilerden yalnızca biri olabilir: |
|
error |
Bir |
response |
Komut dosyası işlevi başarılı bir şekilde döndürülürse bu alan, işlevin dönüş değerini içeren bir Herhangi türde alanlar içeren bir nesne. Ek bir |
Yetkilendirme Kapsamları
Aşağıdaki OAuth kapsamlarından birini gerektirir:
https://apps-apis.google.com/a/feedshttps://apps-apis.google.com/a/feeds/alias/https://apps-apis.google.com/a/feeds/groups/https://mail.google.com/https://sites.google.com/feedshttps://www.google.com/calendar/feedshttps://www.google.com/m8/feedshttps://www.googleapis.com/auth/admin.directory.grouphttps://www.googleapis.com/auth/admin.directory.userhttps://www.googleapis.com/auth/documentshttps://www.googleapis.com/auth/documents.currentonlyhttps://www.googleapis.com/auth/drivehttps://www.googleapis.com/auth/dynamiccreativeshttps://www.googleapis.com/auth/formshttps://www.googleapis.com/auth/forms.currentonlyhttps://www.googleapis.com/auth/groupshttps://www.googleapis.com/auth/script.cpanelhttps://www.googleapis.com/auth/script.external_requesthttps://www.googleapis.com/auth/script.scriptapphttps://www.googleapis.com/auth/script.send_mailhttps://www.googleapis.com/auth/script.storagehttps://www.googleapis.com/auth/script.webapp.deployhttps://www.googleapis.com/auth/spreadsheetshttps://www.googleapis.com/auth/spreadsheets.currentonlyhttps://www.googleapis.com/auth/sqlservicehttps://www.googleapis.com/auth/userinfo.email
Daha fazla bilgi için OAuth 2.0'a Genel Bakış başlıklı makaleyi inceleyin.
Durum
Bir run çağrısı başarılı olursa ancak komut dosyası işlevi (veya Apps Komut Dosyası'nın kendisi) bir istisna oluşturursa yanıt gövdesinin error alanı bu Status nesnesini içerir.
| JSON gösterimi |
|---|
{ "code": integer, "message": string, "details": [ { "@type": string, field1: ..., ... } ] } |
| Alanlar | |
|---|---|
code |
Durum kodu. Bu API için bu değer:
|
message |
Geliştiriciye yönelik hata mesajı (İngilizce olmalıdır). Kullanıcıya gösterilen tüm hata mesajları yerelleştirilmiş olup |
details[] |
Hatanın niteliği hakkında bilgi sağlayan tek bir Herhangi türde alanlar içeren bir nesne. Ek bir |