บริการขั้นสูงใน Apps Script ช่วยให้นักพัฒนาแอปที่มีประสบการณ์เชื่อมต่อกับ Google API สาธารณะบางรายการได้โดยไม่ต้องตั้งค่ามากเท่ากับการใช้อินเทอร์เฟซ HTTP บริการขั้นสูงเป็นเพียง Wrapper แบบบางๆ รอบ 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
เฉพาะในกรณีที่บริการขั้นสูงไม่มีฟังก์ชันการทำงานที่คุณต้องการ
ข้อกำหนด
ก่อนที่จะใช้บริการขั้นสูงได้ คุณต้องมีคุณสมบัติตรงตามข้อกำหนดต่อไปนี้
- คุณต้องเปิดใช้บริการขั้นสูง ในโปรเจ็กต์สคริปต์
คุณต้องตรวจสอบว่าได้เปิดใช้ API ที่สอดคล้องกับบริการขั้นสูง ในโปรเจ็กต์ Cloud Platform (GCP) ที่สคริปต์ใช้
หากโปรเจ็กต์สคริปต์ใช้โปรเจ็กต์ GCP เริ่มต้น ที่สร้างขึ้นตั้งแต่วันที่ 8 เมษายน 2019 เป็นต้นไป ระบบจะเปิดใช้ API โดยอัตโนมัติ หลังจากที่คุณเปิดใช้บริการขั้นสูงและบันทึกโปรเจ็กต์สคริปต์ หากยังไม่ได้ดำเนินการ คุณอาจได้รับแจ้งให้ยอมรับข้อกำหนดในการให้บริการของ Google Cloud และ Google APIs ด้วย
หากโปรเจ็กต์สคริปต์ใช้โปรเจ็กต์ GCP มาตรฐาน หรือโปรเจ็กต์ GCP เริ่มต้นรุ่นเก่า คุณต้องเปิดใช้ API ที่เกี่ยวข้องของบริการขั้นสูง ในโปรเจ็กต์ GCP ด้วยตนเอง คุณต้องมีสิทธิ์แก้ไขโปรเจ็กต์ GCP เพื่อทำการเปลี่ยนแปลงนี้
ดูข้อมูลเพิ่มเติมได้ที่โปรเจ็กต์ Cloud Platform
เปิดใช้บริการขั้นสูง
หากต้องการใช้บริการขั้นสูงของ Google ให้ทำตามวิธีการต่อไปนี้
- เปิดโปรเจ็กต์ Apps Script
- คลิกโปรแกรมตัดต่อ ทางด้านซ้าย
- ทางด้านซ้าย ให้คลิกเพิ่มบริการ ข้างบริการ
- เลือกบริการขั้นสูงของ Google แล้วคลิกเพิ่ม
หลังจากเปิดใช้บริการขั้นสูงแล้ว บริการดังกล่าวจะพร้อมใช้งานในการเติมข้อความอัตโนมัติ
วิธีกำหนดลายเซ็นของเมธอด
โดยทั่วไปแล้ว บริการขั้นสูงจะใช้ออบเจ็กต์ ชื่อเมธอด และพารามิเตอร์เดียวกันกับ API สาธารณะที่เกี่ยวข้อง แม้ว่าจะมีการแปลลายเซ็นของเมธอดเพื่อ ใช้ใน Apps Script ก็ตาม ฟังก์ชันการเติมข้อความอัตโนมัติของโปรแกรมแก้ไขสคริปต์ มักจะให้ข้อมูลเพียงพอที่จะเริ่มต้นใช้งาน แต่กฎด้านล่างจะอธิบาย วิธีที่ Apps Script สร้างลายเซ็นของเมธอดจาก Google API สาธารณะ
คำขอไปยัง Google API สามารถยอมรับข้อมูลประเภทต่างๆ ได้ ซึ่งรวมถึงพารามิเตอร์เส้นทาง พารามิเตอร์การค้นหา เนื้อหาคำขอ และ/หรือไฟล์แนบสำหรับการอัปโหลดสื่อ บริการขั้นสูงบางอย่างยังยอมรับส่วนหัวของคำขอ HTTP ที่เฉพาะเจาะจงได้ด้วย (เช่น บริการขั้นสูงของปฏิทิน)
ลายเซ็นของเมธอดที่เกี่ยวข้องใน Google Apps Script มีอาร์กิวเมนต์ต่อไปนี้
- เนื้อความของคำขอ (โดยปกติคือทรัพยากร) เป็นออบเจ็กต์ JavaScript
- เส้นทางหรือพารามิเตอร์ที่จำเป็นเป็นอาร์กิวเมนต์แต่ละรายการ
- ไฟล์แนบการอัปโหลดสื่อเป็นอาร์กิวเมนต์
Blob
- พารามิเตอร์ที่ไม่บังคับเป็นออบเจ็กต์ JavaScript ที่แมปชื่อพารามิเตอร์กับค่า
- ส่วนหัวคำขอ HTTP เป็นชื่อส่วนหัวการแมปออบเจ็กต์ JavaScript กับค่าส่วนหัว
หากวิธีการไม่มีสินค้าในหมวดหมู่ที่กำหนด ระบบจะละเว้นส่วนนั้นของลายเซ็น
โปรดทราบว่ามีข้อยกเว้นพิเศษบางประการ ดังนี้
- สำหรับวิธีการที่ยอมรับการอัปโหลดสื่อ ระบบจะตั้งค่าพารามิเตอร์
uploadType
โดยอัตโนมัติ - เมธอดที่ชื่อ
delete
ใน Google API จะชื่อremove
ใน Apps Script เนื่องจากdelete
เป็นคำที่สงวนไว้ใน JavaScript - หากกำหนดค่าบริการขั้นสูงให้ยอมรับส่วนหัวของคำขอ HTTP และคุณตั้งค่าออบเจ็กต์ JavaScript ของส่วนหัวของคำขอ คุณจะต้องตั้งค่าออบเจ็กต์ JavaScript ของพารามิเตอร์ที่ไม่บังคับด้วย (ตั้งค่าเป็นออบเจ็กต์ว่างหากคุณไม่ได้ใช้พารามิเตอร์ที่ไม่บังคับ)
การสนับสนุนสำหรับบริการขั้นสูง
บริการขั้นสูงเป็นเพียง Wrapper แบบบางที่ช่วยให้ใช้ Google APIs ภายใน Apps Script ได้ ดังนั้น ปัญหาที่พบขณะใช้บริการเหล่านี้มักเป็นปัญหาเกี่ยวกับ API ที่เกี่ยวข้อง ไม่ใช่ Apps Script เอง
หากพบปัญหาขณะใช้บริการขั้นสูง คุณควร รายงานโดยใช้คำแนะนำในการสนับสนุนสำหรับ API พื้นฐาน ลิงก์ไปยังวิธีการสนับสนุนเหล่านี้มีอยู่ในคำแนะนำสำหรับบริการขั้นสูงแต่ละรายการในส่วนข้อมูลอ้างอิงของ Apps Script