Apps Komut Dosyası projesinde bir işlev çalıştırır. Komut dosyası projesinin, Apps Script API ile kullanılmak üzere dağıtılması ve çağıran uygulamanın aynı Cloud Platform projesini paylaşması gerekir.
Bu yöntem, Yetkilendirme bölümünde listelenen kapsamlardan 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ılan projeyle aynı olmadığını gösterir.
HTTP isteği
POST https://script.googleapis.com/v1/scripts/{scriptId}:run
URL, gRPC Kod Dönüştürme söz dizimini kullanır.
Yol parametreleri
Parametreler | |
---|---|
scriptId |
Yürütülecek komut dosyasının kimliği. Komut dosyası kimliğini "Kimlikler" altındaki Proje ayarları sayfasında bulun. |
İstek içeriği
İstek gövdesi, aşağıdaki yapıyla birlikte veriler 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. Dahil edilen bir kitaplıktaki |
parameters[] |
Yürütülmekte olan işleve iletilecek parametreler. Her parametrenin nesne türü, Apps Komut Dosyası'nda beklenen türle eşleşmelidir. Parametreler, Apps Komut Dosyası'na özel nesne türleri ( |
sessionState |
Kullanımdan kaldırıldı. Yalnızca Android eklentileriyle kullanım içindir. Google Dokümanlar veya E-Tablolar için Android uygulamasında kullanıcının geçerli oturumunu temsil eden kimlik. Eklentiyi başlatan Intent'e ekstra veri olarak dahil edilir. Bir Android eklentisi oturum durumuyla çalıştırıldığında bağlı bir komut dosyasının ayrıcalıklarını kazanır. Yani, eklenti, kullanıcının o anda imleç konumu (Dokümanlar'da) veya seçili hücre (E-Tablolar'da) gibi bilgilere erişebilir. Durumu geri 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 temsili. İşlevin yürütülmesi bitene kadar yürütme yanıtı gönderilmez. Maksimum yürütme çalışma zamanı, Apps Komut Dosyası kota rehberinde 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
response
alanı, nesneninresult
alanında işlevin döndürdüğü değere sahip birExecutionResponse
nesnesi içerir. - Komut dosyası işlevi (veya Apps Komut Dosyası'nın kendisi) bir istisna bildirirse
error
alanında birStatus
nesnesi bulunur.Status
nesnesinindetails
alanı, hatanın yapısı hakkında bilgi sağlayan tek birExecutionError
nesnesine sahip dizi içerir. - Yürütme işlemi henüz tamamlanmadıysa
done
alanıfalse
olur veresponse
ya daerror
alanları mevcut değildir. -
run
çağrısı başarısız olursa (örneğin, hatalı biçimlendirilmiş istek veya yetkilendirme hatası nedeniyle) yöntem, yanıt gövdesi için farklı biçime sahip 4XX aralığında bir HTTP yanıt kodu döndürür. İstemci kitaplıkları, 4XX yanıtını otomatik olarak istisna sınıfına dönüştürür.
JSON gösterimi |
---|
{ "done": boolean, // Union field |
Alanlar | |
---|---|
done |
Bu alan, komut dosyasının yürütülmesinin tamamlanıp tamamlanmadığını gösterir. Tamamlanan bir yürütmede, yürütülen |
result alanı. error veya geçerli bir response olabilecek işlem sonucu. done == false ise ne error ne de response ayarlanır. done == true ise error veya response değerlerinden tam olarak biri ayarlanabilir. Bazı hizmetler sonucu sağlamayabilir. result şunlardan 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öndürdüğü değere sahip bir Rastgele türde alanlar içeren bir nesne. |
Yetkilendirme Kapsamları
Aşağıdaki OAuth kapsamlarından birini gerektirir:
https://apps-apis.google.com/a/feeds
https://apps-apis.google.com/a/feeds/alias/
https://apps-apis.google.com/a/feeds/groups/
https://mail.google.com/
https://sites.google.com/feeds
https://www.google.com/calendar/feeds
https://www.google.com/m8/feeds
https://www.googleapis.com/auth/admin.directory.group
https://www.googleapis.com/auth/admin.directory.user
https://www.googleapis.com/auth/documents
https://www.googleapis.com/auth/documents.currentonly
https://www.googleapis.com/auth/drive
https://www.googleapis.com/auth/dynamiccreatives
https://www.googleapis.com/auth/forms
https://www.googleapis.com/auth/forms.currentonly
https://www.googleapis.com/auth/groups
https://www.googleapis.com/auth/script.cpanel
https://www.googleapis.com/auth/script.external_request
https://www.googleapis.com/auth/script.scriptapp
https://www.googleapis.com/auth/script.send_mail
https://www.googleapis.com/auth/script.storage
https://www.googleapis.com/auth/script.webapp.deploy
https://www.googleapis.com/auth/spreadsheets
https://www.googleapis.com/auth/spreadsheets.currentonly
https://www.googleapis.com/auth/sqlservice
https://www.googleapis.com/auth/userinfo.email
Daha fazla bilgi için OAuth 2.0'a Genel Bakış başlıklı makaleye bakın.
Durum
Bir run
çağrısı başarılı olur ancak komut dosyası işlevi (veya Apps Komut Dosyasının kendisi) bir istisna atarsa 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ştiricinin karşılaştığı İngilizce hata mesajı. Kullanıcılara yönelik tüm hata mesajları yerelleştirilir ve |
details[] |
Hatanın yapısı hakkında bilgi sağlayan tek bir Rastgele türde alanlar içeren bir nesne. |