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

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

หากต้องการดูว่า Google API ใดบ้างที่พร้อมให้บริการเป็นบริการขั้นสูง ให้มองหาส่วนบริการขั้นสูงของ Google ในข้อมูลอ้างอิง หากต้องการใช้ Google API ที่ไม่ใช่บริการขั้นสูง ให้เชื่อมต่อกับ 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 ของพารามิเตอร์ที่ไม่บังคับด้วย (เป็นออบเจ็กต์ว่างหากคุณไม่ได้ใช้พารามิเตอร์ที่ไม่บังคับ)

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

บริการขั้นสูงเป็นเพียงเครื่องมือห่อหุ้มแบบ Thin ที่ช่วยให้คุณใช้ Google API ภายใน Apps Script ได้ ดังนั้น ปัญหาที่พบขณะใช้มักเป็นปัญหาเกี่ยวกับ API ที่เกี่ยวข้อง ไม่ใช่ปัญหาเกี่ยวกับ Apps Script เอง

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