Method: scripts.run

Apps Komut Dosyası projesinde bir işlev çalıştırır. Bu komut dosyası projesi, Apps Script API ile kullanılmak üzere dağıtılmalıdır ve çağrı yapan uygulama aynı Cloud Platform projesini paylaşmalıdır.

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 aracılığıyla yürütülemez. Kimlik doğrulama jetonuna eklenecek doğru kapsamları bulmak için komut dosyası projesinin Genel Bakış sayfasını açın ve "Proje OAuth Kapsamları" bölümüne 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, Proje ayarları sayfasındaki "Kimlikler" bölümünde bulabilirsiniz.

İstek içeriği

İstek gövdesi, aşağıdaki yapıya sahip 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. Dahil edilen kitaplıktaki Library.libFunction1 gibi bir işleve başvuruda bulunabilir.

parameters[]

value (Value format)

Yürütülmekte olan işleve aktarılacak 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 (ör. Document veya Calendar) olamaz. bunlar 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ılabilir. Kullanıcının Google Dokümanlar veya E-Tablolar için Android uygulamasındaki oturumunu temsil eden ve eklentiyi başlatan Amaç'a ekstra veri olarak eklenen bir kimlik. 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 geçerli imleç konumu (Dokümanlar'da) veya seçilen hücreye (E-Tablolar'da) gibi bilgilere erişebilir. Eyaleti öğrenmek için Intent.getStringExtra("com.google.android.apps.docs.addons.SessionState") numarasını arayın. İsteğe bağlı.

devMode

boolean

true ve kullanıcı komut dosyasının sahibiyse komut dosyası, Apps Komut Dosyası API'si ile kullanım için dağıtılan sürüm yerine en son kaydedilen sürümde çalışır. İsteğe bağlı; varsayılan değer false.

Yanıt gövdesi

Başarılı olursa yanıt metni aşağıdaki yapıyla birlikte verileri içerir:

run ile başlayan Apps Komut Dosyası işlevinin yürütülmesini gösteren temsil. İşlev yürütmeyi tamamlayana kadar yürütme yanıtı gelmez. 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ıyla döndürülürse response alanı, nesnenin result alanında işlevin döndürdüğü değeri içeren bir ExecutionResponse nesnesi içerir.
  • Komut dosyası işlevi (veya Apps Komut Dosyası'nın kendisi) bir istisna bildirirse error alanı bir Status nesnesi içerir. Status nesnesinin details alanı, hatanın yapısı hakkında bilgi sağlayan tek bir ExecutionError nesnesine sahip bir dizi içerir.
  • Yürütme henüz tamamlanmadıysa done alanı false olur ve response veya error alanları mevcut değildir.
  • run çağrısının kendisi başarısız olursa (örneğin, bozuk istek veya yetkilendirme hatası nedeniyle) yöntem, 4XX aralığında yanıt gövdesi için farklı bir biçime sahip 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ı yürütme işleminin tamamlanıp tamamlanmadığını gösterir. Tamamlanmış bir yürütmede, yürütülen işlevden ExecutionResponse değerini içeren doldurulmuş bir response alanı bulunur.

Birleştirme alanı result. İşlem sonucu (error veya geçerli bir response olabilir). done == false ise error veya response ayarlanmamıştır. done == true ise tam olarak error veya response 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 alan bir Status nesnesi içerir. Status nesnesinin details alanı, hatanın yapısı hakkında bilgi sağlayan tek bir ExecutionError nesnesine sahip bir dizi içerir.

response

object

Komut dosyası işlevi başarıyla döndürülürse bu alan, işlevin döndürdüğü değere sahip bir ExecutionResponse nesnesi içerir.

Rastgele türden alanlar içeren 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 Overview (OAuth 2.0'a Genel Bakış) sayfasına göz atı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ğerden biri şudur:

  • 10, SCRIPT_TIMEOUT bir hata belirtir,
  • 3 (INVALID_ARGUMENT hatasını belirtir), veya
  • 1 olarak ayarlanır. Bu değer, CANCELLED yürütmesini gösterir.

message

string

Geliştiricilere yönelik, İngilizce hata mesajı. Kullanıcıların karşılaştığı tüm hata mesajları yerelleştirilip 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 nesnesini içeren dizi.

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