Method: scripts.run

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

string

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

string

Belirtilen komut dosyasında yürütülecek işlevin adı. Ad, parantez veya parametre içermez. Dahil edilen bir kitaplıktaki Library.libFunction1 gibi bir işleve başvuruda bulunabilir.

parameters[]

value (Value format)

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

sessionState

string

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

devMode

boolean

true ve kullanıcı, komut dosyasının sahibiyse komut dosyası, Apps Komut Dosyası API'siyle 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 olarak false kullanılı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 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ı, nesnenin result alanında işlevin döndürdüğü değere sahip bir ExecutionResponse nesnesi içerir.
  • Komut dosyası işlevi (veya Apps Komut Dosyası'nın kendisi) bir istisna bildirirse error alanında bir Status nesnesi bulunur. Status nesnesinin details alanı, hatanın yapısı hakkında bilgi sağlayan tek bir ExecutionError nesnesine sahip dizi içerir.
  • Yürütme işlemi henüz tamamlanmadıysa done alanı false olur ve response ya da error 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 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ının yürütülmesinin tamamlanıp tamamlanmadığını gösterir. Tamamlanan bir yürütmede, yürütülen ExecutionResponse fonksiyonunu içeren doldurulmuş bir response alanı bulunur.

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

object (Status)

Bir run çağrısı başarılı olur ancak komut dosyası işlevi (veya Apps Komut Dosyası'nın kendisi) bir istisna atarsa bu alanda bir Status nesnesi bulunur. Status nesnesinin details alanı, hatanın yapısı hakkında bilgi sağlayan tek bir ExecutionError nesnesine sahip dizi içerir.

response

object

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

Rastgele türde alanlar içeren bir nesne. "@type" adlı ek 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ı 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

integer

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

  • SCRIPT_TIMEOUT hatası olduğunu gösteren 10,
  • INVALID_ARGUMENT hatası olduğunu belirten 3 veya
  • 1 olarak ayarlanır. Bu, CANCELLED işleminin yürütüldüğünü gösterir.

message

string

Geliştiricinin karşılaştığı İngilizce hata mesajı. Kullanıcılara yönelik tüm hata mesajları yerelleştirilir ve details alanında gönderilir veya istemci tarafından yerelleştirilir.

details[]

object

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

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