เรียกใช้ฟังก์ชันในโปรเจ็กต์ 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/{scriptId}:run
URL ใช้ไวยากรณ์การแปลง gRPC
พารามิเตอร์เส้นทาง
พารามิเตอร์ | |
---|---|
scriptId |
รหัสสคริปต์ของสคริปต์ที่จะดำเนินการ ค้นหารหัสสคริปต์ในหน้าการตั้งค่าโปรเจ็กต์ในส่วน "รหัส" |
เนื้อหาของคำขอ
เนื้อหาของคำขอมีข้อมูลที่มีโครงสร้างต่อไปนี้
การแสดง JSON |
---|
{ "function": string, "parameters": [ value ], "sessionState": string, "devMode": boolean } |
ช่อง | |
---|---|
function |
ชื่อของฟังก์ชันที่จะดำเนินการในสคริปต์ที่ระบุ ชื่อต้องไม่มีวงเล็บหรือพารามิเตอร์ ซึ่งอ้างอิงฟังก์ชันในไลบรารีที่รวมไว้ เช่น |
parameters[] |
พารามิเตอร์ที่จะส่งไปยังฟังก์ชันที่จะดำเนินการ ประเภทออบเจ็กต์ของพารามิเตอร์แต่ละรายการควรตรงกับประเภทที่ต้องการใน Apps Script พารามิเตอร์ต้องไม่เป็นประเภทออบเจ็กต์เฉพาะของ Apps Script (เช่น |
sessionState |
เลิกใช้งาน สำหรับใช้กับส่วนเสริมของ Android เท่านั้น รหัสที่แสดงเซสชันปัจจุบันของผู้ใช้ในแอป Android สำหรับ Google เอกสารหรือชีต โดยรวมเป็นข้อมูลเพิ่มเติมใน Intent ที่เปิดตัวส่วนเสริม เมื่อส่วนเสริม Android ทำงานโดยมีสถานะเซสชัน ส่วนเสริมจะได้รับสิทธิ์ของสคริปต์ขอบเขต กล่าวคือ ส่วนเสริมจะเข้าถึงข้อมูล เช่น ตำแหน่งเคอร์เซอร์ปัจจุบันของผู้ใช้ (ในเอกสาร) หรือเซลล์ที่เลือก (ในชีต) ได้ หากต้องการดึงข้อมูลรัฐ โปรดโทรติดต่อ |
devMode |
หาก |
เนื้อหาการตอบกลับ
หากทำสำเร็จ เนื้อหาการตอบกลับจะมีข้อมูลซึ่งมีโครงสร้างดังต่อไปนี้
การแสดงการเรียกใช้ฟังก์ชัน Apps Script ที่เริ่มต้นด้วย run
การตอบสนองของการเรียกใช้จะไม่มาถึงจนกว่าฟังก์ชันจะทำงานเสร็จสิ้น ดูรันไทม์ของการดำเนินการสูงสุดได้ในคู่มือโควต้า Apps Script
หลังจากการดำเนินการเริ่มต้นขึ้น อาจมีผลลัพธ์ 1 ใน 4 รายการดังนี้
- หากฟังก์ชันสคริปต์แสดงผลสำเร็จ ช่อง
response
จะมีออบเจ็กต์ExecutionResponse
พร้อมค่าที่แสดงผลของฟังก์ชันในช่องresult
ของออบเจ็กต์ - หากฟังก์ชันของสคริปต์ (หรือ Apps Script เอง) มีข้อยกเว้น ช่อง
error
จะมีออบเจ็กต์Status
ช่องdetails
ของออบเจ็กต์Status
มีอาร์เรย์ที่มีออบเจ็กต์ExecutionError
รายการเดียวที่ให้ข้อมูลเกี่ยวกับลักษณะของข้อผิดพลาด - หากการดำเนินการยังไม่เสร็จสมบูรณ์ ช่อง
done
จะเป็นfalse
และจะไม่มีทั้งช่องresponse
และerror
- หากการเรียกใช้
run
เองล้มเหลว (เช่น เนื่องจากคำขอผิดรูปแบบหรือข้อผิดพลาดในการให้สิทธิ์) เมธอดจะแสดงรหัสการตอบกลับ HTTP ในช่วง 4XX ด้วยรูปแบบอื่นสำหรับเนื้อความการตอบกลับ ไลบรารีของไคลเอ็นต์จะแปลงการตอบกลับ 4XX เป็นคลาสข้อยกเว้นโดยอัตโนมัติ
การแสดง JSON |
---|
{ "done": boolean, // Union field |
ช่อง | |
---|---|
done |
ฟิลด์นี้จะระบุว่าการเรียกใช้สคริปต์เสร็จสมบูรณ์แล้วหรือไม่ การดำเนินการที่เสร็จสมบูรณ์จะมีฟิลด์ |
ช่องการรวม result ผลการดำเนินการ ซึ่งอาจเป็น error หรือ response ที่ถูกต้องก็ได้ หาก done == false จะไม่มีการตั้งค่าทั้ง error และ response หาก done == true อาจตั้งค่า error หรือ response ได้ 1 รายการ บริการบางอย่างอาจแสดงผลลัพธ์ไม่ได้ result ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้ |
|
error |
หากการเรียกใช้ |
response |
หากฟังก์ชันสคริปต์แสดงผลสำเร็จ ช่องนี้จะมีออบเจ็กต์ ออบเจ็กต์ที่มีช่องประเภทที่กำหนดเอง ช่องเพิ่มเติม |
ขอบเขตการให้สิทธิ์
ต้องใช้ขอบเขต 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 |
รหัสสถานะ สำหรับ API นี้ ค่านี้ทำอย่างใดอย่างหนึ่งต่อไปนี้
|
message |
ข้อความแสดงข้อผิดพลาดที่นักพัฒนาแอปแสดงเป็นภาษาอังกฤษ ข้อความแสดงข้อผิดพลาดที่แสดงต่อผู้ใช้จะได้รับการแปลและส่งในช่อง |
details[] |
อาร์เรย์ที่มีออบเจ็กต์ ออบเจ็กต์ที่มีช่องประเภทที่กำหนดเอง ช่องเพิ่มเติม |