การใช้ฟังก์ชัน Apps Script

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

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

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

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

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

คำขอ scripts.run ต่อไปนี้จะเรียกใช้ฟังก์ชัน Apps Script ที่มีชื่อว่า listFolderContent โดยส่งไดรฟ์ folderId และจำนวนเต็ม 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
        }]
      }]
    }
  }
}