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

บริการขั้นสูงใน Apps Script ช่วยให้นักพัฒนาซอฟต์แวร์ที่มีประสบการณ์เชื่อมต่อกับ Google API สาธารณะบางรายการได้โดยมีการตั้งค่าน้อยกว่าการใช้อินเทอร์เฟซ HTTP บริการขั้นสูงมักมี Wrapper ขนาดเล็กของ 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 APIs สามารถยอมรับข้อมูลประเภทต่างๆ เช่น พารามิเตอร์เส้นทาง พารามิเตอร์การค้นหา เนื้อหาของคำขอ และ/หรือไฟล์แนบสำหรับอัปโหลดสื่อ บริการขั้นสูงบางอย่างจะยอมรับส่วนหัวของคำขอ 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