Method: scripts.run

เรียกใช้ฟังก์ชันในโปรเจ็กต์ Apps Script ต้องทําการติดตั้งใช้งานโปรเจ็กต์สคริปต์เพื่อใช้กับ Apps Script API และแอปพลิเคชันที่เรียกใช้ต้องใช้โปรเจ็กต์ Cloud Platform เดียวกัน

เมธอดนี้ต้องมีการให้สิทธิ์ด้วยโทเค็น OAuth 2.0 ที่มีขอบเขตอย่างน้อย 1 รายการที่ระบุไว้ในส่วนการให้สิทธิ์ โครงการสคริปต์ที่ไม่ต้องมีการให้สิทธิ์จะดำเนินการผ่าน API นี้ไม่ได้ หากต้องการค้นหาสโคปที่ถูกต้องเพื่อรวมไว้ในโทเค็นการตรวจสอบสิทธิ์ ให้เปิดหน้าภาพรวมของโปรเจ็กต์สคริปต์ แล้วเลื่อนลงไปที่ "ขอบเขต OAuth ของโปรเจ็กต์"

ข้อผิดพลาด 403, PERMISSION_DENIED: The caller does not have permission แสดงว่าโปรเจ็กต์ Cloud Platform ที่ใช้ให้สิทธิ์คำขอไม่เหมือนกับโปรเจ็กต์ที่สคริปต์ใช้

คำขอ HTTP

POST https://script.googleapis.com/v1/scripts/{deploymentId}:run

URL ใช้ไวยากรณ์การแปลงรหัส gRPC

พารามิเตอร์เส้นทาง

พารามิเตอร์
deploymentId

string

รหัสการทำให้ใช้งานได้สำหรับการทำให้ใช้งานได้ของไฟล์ดำเนินการของ API ค้นหารหัสการทำให้ใช้งานได้ในส่วนทำให้ใช้งานได้ > จัดการการทำให้ใช้งานได้ในโปรแกรมแก้ไขสคริปต์

เนื้อความของคำขอ

เนื้อหาของคำขอมีข้อมูลซึ่งมีโครงสร้างดังต่อไปนี้

การแสดง JSON
{
  "function": string,
  "parameters": [
    value
  ],
  "sessionState": string,
  "devMode": boolean
}
ช่อง
function

string

ชื่อของฟังก์ชันที่จะเรียกใช้ในสคริปต์ที่ระบุ ชื่อไม่มีวงเล็บหรือพารามิเตอร์ โดยสามารถอ้างอิงฟังก์ชันในไลบรารีที่รวมไว้ เช่น Library.libFunction1

parameters[]

value (Value format)

พารามิเตอร์ที่จะส่งไปยังฟังก์ชันที่กำลังดำเนินการ ประเภทออบเจ็กต์ของพารามิเตอร์แต่ละรายการควรตรงกับประเภทที่คาดไว้ใน Apps Script พารามิเตอร์ต้องไม่ใช่ประเภทออบเจ็กต์เฉพาะของ Apps Script (เช่น Document หรือ Calendar) แต่ต้องเป็นประเภทดั้งเดิมเท่านั้น เช่น string, number, array, object หรือ boolean ไม่บังคับ

sessionState

string

เลิกใช้งาน สำหรับใช้กับส่วนเสริม Android เท่านั้น รหัสที่แสดงเซสชันปัจจุบันของผู้ใช้ในแอป Android สำหรับ Google เอกสารหรือชีต ซึ่งรวมเป็นข้อมูลเพิ่มเติมใน Intent ที่เปิดใช้ส่วนเสริม เมื่อส่วนเสริม Android ทำงานโดยมีสถานะเซสชัน ส่วนเสริมจะได้รับสิทธิ์ของสคริปต์ที่เชื่อมโยง ซึ่งหมายความว่าส่วนเสริมจะเข้าถึงข้อมูลต่างๆ ได้ เช่น ตำแหน่งเคอร์เซอร์ปัจจุบันของผู้ใช้ (ในเอกสาร) หรือเซลล์ที่เลือก (ในชีต) หากต้องการดึงข้อมูลสถานะ ให้โทรไปที่ Intent.getStringExtra("com.google.android.apps.docs.addons.SessionState") ไม่บังคับ

devMode

boolean

หาก true และผู้ใช้เป็นเจ้าของสคริปต์ สคริปต์จะทำงานในเวอร์ชันที่บันทึกไว้ล่าสุดแทนที่จะเป็นเวอร์ชันที่ติดตั้งใช้งานเพื่อใช้กับ Apps Script API ไม่บังคับ ค่าเริ่มต้นคือ false

เนื้อหาการตอบกลับ

หากทำสำเร็จ เนื้อหาการตอบกลับจะมีข้อมูลซึ่งมีโครงสร้างดังต่อไปนี้

การแสดงการดำเนินการฟังก์ชัน Apps Script ที่เริ่มต้นด้วย run การตอบกลับการดำเนินการจะไม่มาถึงจนกว่าฟังก์ชันจะดำเนินการเสร็จสิ้น รันไทม์การดำเนินการสูงสุดระบุไว้ในคู่มือโควต้า Apps Script

หลังจากเริ่มการดำเนินการแล้ว การดำเนินการอาจมีผลลัพธ์อย่างใดอย่างหนึ่งต่อไปนี้

  • หากฟังก์ชันสคริปต์แสดงผลสำเร็จ ฟิลด์ response จะมีออบเจ็กต์ ExecutionResponse ที่มีค่าที่ฟังก์ชันแสดงผลในฟิลด์ result ของออบเจ็กต์
  • หากฟังก์ชันสคริปต์ (หรือ Apps Script เอง) ส่งข้อยกเว้น ฟิลด์ error จะมีออบเจ็กต์ Status ฟิลด์ details ของออบเจ็กต์ Status มีอาร์เรย์ที่มีออบเจ็กต์ ExecutionError รายการเดียวซึ่งให้ข้อมูลเกี่ยวกับลักษณะของข้อผิดพลาด
  • หากการดำเนินการยังไม่เสร็จสมบูรณ์ ฟิลด์ done จะเป็น false และจะไม่มีทั้งฟิลด์ response และ error
  • หากการเรียก run เองไม่สำเร็จ (เช่น เนื่องจากคำขอที่ผิดรูปแบบหรือข้อผิดพลาดในการให้สิทธิ์) เมธอดจะแสดงรหัสการตอบกลับ HTTP ในช่วง 4XX โดยมีรูปแบบที่แตกต่างกันสำหรับเนื้อความของการตอบกลับ ไลบรารีของไคลเอ็นต์จะแปลงการตอบกลับ 4XX เป็นคลาสข้อยกเว้นโดยอัตโนมัติ

การแสดง JSON
{
  "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.
}
ช่อง
done

boolean

ฟิลด์นี้ระบุว่าการเรียกใช้สคริปต์เสร็จสมบูรณ์แล้วหรือไม่ การดำเนินการที่เสร็จสมบูรณ์จะมีฟิลด์ response ที่มีข้อมูลซึ่งมี ExecutionResponse จากฟังก์ชันที่ดำเนินการ

ฟิลด์ Union result ผลลัพธ์ของการดำเนินการ ซึ่งอาจเป็น error หรือ response ที่ถูกต้อง หาก done == false จะไม่มีการตั้งค่า error หรือ response หาก done == true จะตั้งค่า error หรือ response ได้เพียงอย่างเดียว บริการบางอย่างอาจไม่แสดงผลลัพธ์ result ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้เท่านั้น
error

object (Status)

หากการเรียก run สำเร็จ แต่ฟังก์ชันสคริปต์ (หรือ Apps Script เอง) แสดงข้อยกเว้น ฟิลด์นี้จะมีออบเจ็กต์ Status ฟิลด์ details ของออบเจ็กต์ Status มีอาร์เรย์ที่มีออบเจ็กต์ ExecutionError รายการเดียวซึ่งให้ข้อมูลเกี่ยวกับลักษณะของข้อผิดพลาด

response

object

หากฟังก์ชันสคริปต์แสดงผลสำเร็จ ฟิลด์นี้จะมีออบเจ็กต์ ExecutionResponse ที่มีค่าที่ฟังก์ชันแสดงผล

ออบเจ็กต์ที่มีฟิลด์ประเภทใดก็ได้ ฟิลด์เพิ่มเติม "@type" มี URI ที่ระบุประเภท เช่น { "id": 1234, "@type": "types.example.com/standard/id" }

ขอบเขตการให้สิทธิ์

ต้องใช้ขอบเขต OAuth อย่างใดอย่างหนึ่งต่อไปนี้

  • 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

ดูข้อมูลเพิ่มเติมได้ที่ภาพรวมของ OAuth 2.0

สถานะ

หากการเรียก run สำเร็จ แต่ฟังก์ชันสคริปต์ (หรือ Apps Script เอง) แสดงข้อยกเว้น ฟิลด์ error ของเนื้อหาการตอบกลับจะมีออบเจ็กต์ Status นี้

การแสดง JSON
{
  "code": integer,
  "message": string,
  "details": [
    {
      "@type": string,
      field1: ...,
      ...
    }
  ]
}
ช่อง
code

integer

รหัสสถานะ สำหรับ API นี้ ค่านี้จะเป็นอย่างใดอย่างหนึ่งต่อไปนี้

  • 10 ซึ่งบ่งบอกถึงSCRIPT_TIMEOUTข้อผิดพลาด
  • 3 ซึ่งบ่งบอกถึงINVALID_ARGUMENTข้อผิดพลาด หรือ
  • 1 ซึ่งระบุการดำเนินการ CANCELLED

message

string

ข้อความแสดงข้อผิดพลาดที่ส่งถึงนักพัฒนาแอป ซึ่งเป็นภาษาอังกฤษ ข้อความแสดงข้อผิดพลาดที่ผู้ใช้เห็นจะได้รับการแปลและส่งในช่อง details หรือแปลโดยไคลเอ็นต์

details[]

object

อาร์เรย์ที่มีออบเจ็กต์ ExecutionError รายการเดียวซึ่งให้ข้อมูลเกี่ยวกับลักษณะของข้อผิดพลาด

ออบเจ็กต์ที่มีฟิลด์ประเภทใดก็ได้ ฟิลด์เพิ่มเติม "@type" มี URI ที่ระบุประเภท เช่น { "id": 1234, "@type": "types.example.com/standard/id" }