เรียกใช้ฟังก์ชัน Google Apps Script

Google Apps Script API ช่วยให้คุณเรียกใช้ฟังก์ชันในโปรเจ็กต์สคริปต์ที่คุณมีสิทธิ์เข้าถึงได้จากระยะไกล แอปของคุณเรียกใช้ฟังก์ชัน Apps Script ที่ระบุได้ โดยระบุพารามิเตอร์อินพุตหากจำเป็น และรับการตอบกลับ

ตัวอย่างในหน้านี้แสดงให้เห็นว่าการดำเนินการเรียกใช้ทั่วไปสามารถทำได้ด้วย API อย่างไร ดูข้อมูลเพิ่มเติม รวมถึงข้อกำหนดการให้สิทธิ์พิเศษได้ในคู่มือเรียกใช้ฟังก์ชัน

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

  1. ในโปรเจ็กต์ Apps Script ให้คลิกการตั้งค่าโปรเจ็กต์ที่ด้านซ้ายบน
  2. คลิกคัดลอกข้าง "รหัสสคริปต์"

ดำเนินการฟังก์ชัน

การเรียกคำขอ scripts.run ต่อไปนี้จะเรียกใช้ฟังก์ชัน Apps Script ที่ชื่อ listFolderContent โดยส่ง folderId ใน Google ไดรฟ์และจำนวนเต็ม MAX_SIZE เป็นอาร์กิวเมนต์ ฟังก์ชันจะทำงานในโหมดการพัฒนา ซึ่งหมายความว่า ระบบจะเรียกใช้ฟังก์ชันเวอร์ชันที่บันทึกไว้ล่าสุด ไม่ว่า จะมีการติดตั้งใช้งานเวอร์ชันใดเป็นไฟล์ที่เรียกใช้งานได้ก็ตาม

โปรโตคอลคำขอแสดงอยู่ด้านล่าง คำแนะนำ เรียกใช้ฟังก์ชันจะแสดงวิธี ใช้คำขอเรียกใช้ในภาษาต่างๆ โดยใช้ไลบรารีไคลเอ็นต์ Google API

POST https://script.googleapis.com/v1/scripts/scriptId:run
{
  "function": "listFolderContent",
  "parameters": [
    folderId,
    MAX_SIZE
  ],
  "devMode": true
}

การตอบกลับคำขอนี้ เมื่อฟังก์ชัน Apps Script ที่เรียกใช้เสร็จสมบูรณ์แล้ว จะมีผลลัพธ์ของการดำเนินการหรือการตอบกลับข้อผิดพลาด ในตัวอย่างนี้ ฟังก์ชันจะแสดงผลอาร์เรย์ของชื่อไฟล์ได้สำเร็จ ดังนี้

{
  "response": {
    "result": [
      "fileTitle1",
      "fileTitle2",
      "fileTitle3"
    ]
  },
}

หากฟังก์ชันพบข้อผิดพลาดระหว่างการเรียกใช้ Apps Script การตอบกลับอาจมีลักษณะดังนี้

{
  "response": {
    "error": {
      "code": 3,
      "message": "ScriptError",
      "details": [{
        "@type": "type.googleapis.com/google.apps.script.v1.ExecutionError",
        "errorMessage": "The script enountered an exeception it could not resolve.",
        "errorType": "ScriptError",
        "scriptStackTraceElements": [{
          "function": "listFolderContent",
          "lineNumber": 14
        }]
      }]
    }
  }
}