Method: scripts.run

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

string

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

string

Belirtilen komut dosyasında yürütülecek işlevin adı. Ad, parantez veya parametre içermez. Bu, Library.libFunction1 gibi dahil edilen bir kitaplıktaki bir işlevi referans alabilir.

parameters[]

value (Value format)

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. Document veya Calendar) olamaz. Yalnızca string, number, array, object veya boolean gibi temel türler olabilir. İsteğe bağlıdır.

sessionState

string

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 Intent.getStringExtra("com.google.android.apps.docs.addons.SessionState") numaralı telefonu arayın. İsteğe bağlıdır.

devMode

boolean

true ise ve kullanıcı komut dosyasının sahibi ise komut dosyası, Apps Script API ile kullanılmak üzere dağıtılan sürüm yerine en son kaydedilen sürümde çalışır. İsteğe bağlıdır. Varsayılan değer false'dır.

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 response alanı, işlevin dönüş değerini içeren bir ExecutionResponse nesnesi içerir. Bu değer, nesnenin result alanında yer alır.
  • Komut dosyası işlevi (veya Apps Komut Dosyası'nın kendisi) bir istisna oluşturursa error alanı bir Status nesnesi içerir. Status nesnesinin details alanı, hatanın niteliği hakkında bilgi sağlayan tek bir ExecutionError nesnesi içeren bir dizi içerir.
  • Yürütme henüz tamamlanmadıysa done alanı false olur ve response veya error alanları 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 result can be only one of the following:
  "error": {
    object (Status)
  },
  "response": {
    "@type": string,
    field1: ...,
    ...
  }
  // End of list of possible types for union field result.
}
Alanlar
done

boolean

Bu alan, komut dosyası yürütmesinin tamamlanıp tamamlanmadığını gösterir. Tamamlanan bir yürütmede, yürütülen ExecutionResponse işlevini içeren doldurulmuş bir response alanı bulunur.

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

object (Status)

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 bu alan bir Status nesnesi içerir. Status nesnesinin details alanı, hatanın niteliği hakkında bilgi sağlayan tek bir ExecutionError nesnesi içeren bir dizi içerir.

response

object

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 ExecutionResponse nesnesi içerir.

Herhangi türde alanlar içeren bir nesne. Ek bir "@type" alanı, türü tanımlayan bir URI içerir. Örnek: { "id": 1234, "@type": "types.example.com/standard/id" }.

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ı 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

integer

Durum kodu. Bu API için bu değer:

  • SCRIPT_TIMEOUT hatası olduğunu belirten 10,
  • INVALID_ARGUMENT hatası olduğunu gösteren 3, veya
  • 1, CANCELLED yürütülmesini gösterir.

message

string

Geliştiriciye yönelik hata mesajı (İngilizce olmalıdır). Kullanıcıya gösterilen tüm hata mesajları yerelleştirilmiş olup details alanında gönderilir veya istemci tarafından yerelleştirilir.

details[]

object

Hatanın niteliği hakkında bilgi sağlayan tek bir ExecutionError nesnesi içeren bir dizi.

Herhangi türde alanlar içeren bir nesne. Ek bir "@type" alanı, türü tanımlayan bir URI içerir. Örnek: { "id": 1234, "@type": "types.example.com/standard/id" }.