บริการขั้นสูงของ Google

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

หากต้องการดูว่า Google API ใดพร้อมใช้งานเป็นบริการขั้นสูง ให้มองหาส่วนบริการขั้นสูงของ Google ในข้อมูลอ้างอิง หากคุณต้องการใช้ Google API ที่ไม่มีให้ใช้เป็นบริการขั้นสูง เพียงเชื่อมต่อกับบริการขั้นสูงเช่นเดียวกับ API ภายนอกอื่นๆ

บริการขั้นสูงหรือ HTTP

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

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

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

โดยทั่วไปแล้ว วิธีที่ง่ายที่สุดคือการใช้บริการขั้นสูงเมื่อเป็นไปได้ และใช้เมธอด UrlFetch เฉพาะเมื่อบริการขั้นสูงไม่มีฟังก์ชันที่คุณต้องการ

ข้อกำหนด

ก่อนที่คุณจะใช้บริการขั้นสูงได้ คุณต้องมีคุณสมบัติตรงตามข้อกำหนดต่อไปนี้

  1. คุณต้องเปิดใช้บริการขั้นสูงในโปรเจ็กต์สคริปต์
  2. คุณต้องตรวจสอบว่า API ที่สอดคล้องกับบริการขั้นสูงนั้นเปิดใช้ในโปรเจ็กต์ Cloud Platform (GCP) ที่สคริปต์ใช้

    หากโปรเจ็กต์สคริปต์ใช้โปรเจ็กต์ GCP เริ่มต้นที่สร้างตั้งแต่วันที่ 8 เมษายน 2019 เป็นต้นไป API ดังกล่าวจะเปิดใช้โดยอัตโนมัติหลังจากที่คุณเปิดใช้บริการขั้นสูงและบันทึกโปรเจ็กต์สคริปต์แล้ว หากยังไม่ได้ดำเนินการ คุณอาจได้รับข้อความขอให้ยอมรับข้อกำหนดในการให้บริการของ Google Cloud และ Google APIs ด้วย

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

โปรดดูข้อมูลเพิ่มเติมที่โปรเจ็กต์ Cloud Platform

เปิดใช้บริการขั้นสูง

หากต้องการใช้บริการขั้นสูงของ Google ให้ทำตามวิธีการต่อไปนี้

  1. เปิดโครงการ Apps Script
  2. คลิกตัดต่อวิดีโอ ทางด้านซ้าย
  3. ทางด้านซ้าย ถัดจากบริการ ให้คลิกเพิ่มบริการ
  4. เลือกบริการขั้นสูงของ Google แล้วคลิกเพิ่ม

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

วิธีระบุลายเซ็นวิธีการ

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

คำขอไปยัง Google API รับข้อมูลได้หลายประเภท เช่น พารามิเตอร์เส้นทาง พารามิเตอร์การค้นหา เนื้อหาคำขอ และ/หรือไฟล์แนบที่อัปโหลดสื่อ บริการขั้นสูงบางประเภทยังยอมรับส่วนหัวของคำขอ HTTP ที่เฉพาะเจาะจงได้ด้วย (เช่น บริการขั้นสูงของปฏิทิน)

ลายเซ็นเมธอดที่สอดคล้องใน Google Apps Script มีอาร์กิวเมนต์ดังนี้

  1. เนื้อหาของคำขอ (มักจะเป็นทรัพยากร) เป็นออบเจ็กต์ JavaScript
  2. เส้นทางหรือพารามิเตอร์ที่จำเป็นเป็นอาร์กิวเมนต์แต่ละรายการ
  3. ไฟล์แนบที่อัปโหลดสื่อเป็นอาร์กิวเมนต์ Blob
  4. พารามิเตอร์ที่ไม่บังคับ ใช้เป็นชื่อพารามิเตอร์การแมปออบเจ็กต์ JavaScript กับค่า
  5. ส่วนหัวคำขอ HTTP ซึ่งเป็นชื่อส่วนหัวการแมปออบเจ็กต์ JavaScript กับค่าส่วนหัว

หากเมธอดไม่มีรายการในหมวดหมู่ที่กำหนด ระบบจะละเว้นลายเซ็นส่วนนั้น

มีข้อยกเว้นพิเศษบางประการที่ควรทราบ ดังนี้

  • สำหรับเมธอดที่ยอมรับการอัปโหลดสื่อ ระบบจะตั้งค่าพารามิเตอร์ uploadType โดยอัตโนมัติ
  • เมธอดชื่อ delete ใน Google API จะมีชื่อว่า remove ใน Apps Script เนื่องจากชื่อ delete เป็นคำที่สงวนไว้ใน JavaScript
  • หากมีการกำหนดค่าบริการขั้นสูงให้ยอมรับส่วนหัวของคำขอ HTTP และคุณตั้งค่าออบเจ็กต์ JavaScript ของส่วนหัวของคำขอแล้ว คุณจะต้องตั้งค่าออบเจ็กต์ JavaScript สำหรับพารามิเตอร์ที่ไม่บังคับด้วย (เป็นออบเจ็กต์ว่าง หากคุณไม่ได้ใช้พารามิเตอร์ที่ไม่บังคับ)

การสนับสนุนสำหรับบริการขั้นสูง

บริการขั้นสูงเป็นเพียง Wrapper สั้นๆ ที่ช่วยให้ใช้ Google API ภายใน Apps Script ได้ ดังนั้น ปัญหาที่พบระหว่างการใช้งานมักจะเป็นปัญหาเกี่ยวกับ API ที่สำคัญ ไม่ใช่กับ Apps Script

หากคุณประสบปัญหาขณะใช้บริการขั้นสูง คุณควรรายงานปัญหาดังกล่าวโดยใช้คำแนะนำการสนับสนุนสำหรับ API ที่เกี่ยวข้อง ลิงก์ไปยังวิธีการสนับสนุนจะมีให้ในคู่มือบริการขั้นสูงในส่วนข้อมูลอ้างอิงของ Apps Script