เรียกใช้ฟังก์ชัน 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
        }]
      }]
    }
  }
}