ผู้ใช้ต้องให้สิทธิ์โปรเจ็กต์สคริปต์ที่เข้าถึงข้อมูลหรือดำเนินการในนามของโปรเจ็กต์เหล่านั้น เมื่อผู้ใช้เรียกใช้สคริปต์ที่ต้องมีการให้สิทธิ์เป็นครั้งแรก UI จะแสดงข้อความแจ้งให้เริ่มขั้นตอนการให้สิทธิ์
ในระหว่างขั้นตอนนี้ UI จะบอกผู้ใช้ว่าสคริปต์ต้องการสิทธิ์ทำอะไรได้บ้าง เช่น สคริปต์อาจต้องการสิทธิ์ในการอ่านข้อความอีเมลของผู้ใช้หรือสร้างกิจกรรมในปฏิทินของตน โปรเจ็กต์สคริปต์จะกำหนดสิทธิ์แต่ละรายการเหล่านี้เป็นขอบเขต OAuth
สำหรับสคริปต์ส่วนใหญ่ Apps Script จะตรวจหาขอบเขตที่คุณจำเป็นต้องใช้โดยอัตโนมัติ โดยคุณสามารถดูขอบเขตที่สคริปต์ใช้ได้ทุกเมื่อ นอกจากนี้ คุณยังตั้งค่าขอบเขตอย่างชัดแจ้งในไฟล์ Manifest โดยใช้สตริง URL ได้ด้วย บางครั้งต้องมีการตั้งค่าขอบเขตอย่างชัดเจนสำหรับแอปพลิเคชันบางอย่าง เช่น ส่วนเสริม เนื่องจากแอปพลิเคชันที่เผยแพร่ควรใช้ขอบเขตที่แคบที่สุดเท่าที่จะเป็นไปได้เสมอ
ในระหว่างขั้นตอนการให้สิทธิ์ Apps Script จะแสดงคำอธิบายขอบเขตที่จำเป็นที่มนุษย์อ่านได้ เช่น หากสคริปต์ต้องมีสิทธิ์เข้าถึงสเปรดชีตในระดับอ่านอย่างเดียว ไฟล์ Manifest อาจมีขอบเขต https://www.googleapis.com/auth/spreadsheets.readonly
ในระหว่างขั้นตอนการให้สิทธิ์ สคริปต์ที่มีขอบเขตนี้จะขอให้ผู้ใช้อนุญาตให้แอปพลิเคชัน "ดูสเปรดชีต Google ของคุณ" ได้
โดยบางขอบเขตอาจนับรวมขอบเขตอื่นๆ ด้วย เช่น เมื่อให้สิทธิ์ขอบเขตแล้ว https://www.googleapis.com/auth/spreadsheets
จะให้สิทธิ์อ่านและเขียนสเปรดชีต
กำลังดูขอบเขต
คุณดูขอบเขตที่โปรเจ็กต์สคริปต์ต้องการในปัจจุบันได้โดยทำตามขั้นตอนต่อไปนี้
- เปิดโปรเจ็กต์สคริปต์
- ทางด้านซ้าย ให้คลิกภาพรวม
- ดูขอบเขตในส่วนขอบเขต OAuth ของโครงการ
การตั้งค่าขอบเขตที่ชัดเจน
Apps Script จะกำหนดขอบเขตที่สคริปต์ต้องการโดยอัตโนมัติด้วยการสแกนโค้ดเพื่อหาฟังก์ชันที่จำเป็นต้องใช้ สำหรับสคริปต์ส่วนใหญ่ วิธีนี้เพียงพอและช่วยประหยัดเวลา แต่สำหรับส่วนเสริมที่เผยแพร่แล้ว, เว็บแอป, แอป Google Chat และการเรียก Google Chat API คุณต้องใช้การควบคุมขอบเขตโดยตรงมากขึ้น
บางครั้ง Apps Script จะมอบหมายขอบเขตที่ให้สิทธิ์มากๆ แก่โปรเจ็กต์โดยอัตโนมัติ ซึ่งอาจทำให้สคริปต์ถามผู้ใช้เกินความจำเป็น ซึ่งเป็นแนวทางปฏิบัติที่ไม่ดี สำหรับสคริปต์ที่เผยแพร่ คุณต้องแทนที่ขอบเขตแบบกว้างด้วยชุดที่จำกัดซึ่งครอบคลุมความต้องการของสคริปต์และไม่มากไปกว่านี้
คุณกำหนดขอบเขตที่โปรเจ็กต์สคริปต์จะใช้อย่างชัดแจ้งได้โดยการแก้ไขไฟล์ไฟล์ Manifest ช่องไฟล์ Manifest oauthScopes
คืออาร์เรย์ของขอบเขตทั้งหมดที่โปรเจ็กต์ใช้ ในการตั้งค่าขอบเขตของโปรเจ็กต์ ให้ทำดังนี้
- เปิดโปรเจ็กต์สคริปต์
- คลิกการตั้งค่าโปรเจ็กต์ ทางด้านซ้าย
- เลือกช่องทำเครื่องหมายแสดงไฟล์ Manifest "appsscript.json" ในเครื่องมือแก้ไข
- คลิกตัดต่อวิดีโอ ทางด้านซ้าย
- คลิกไฟล์
appsscript.json
ทางด้านซ้าย - ค้นหาฟิลด์ระดับบนสุดที่มีป้ายกำกับ
oauthScopes
หากไม่มี คุณก็เพิ่มชื่อนั้นได้ - ช่อง
oauthScopes
ระบุอาร์เรย์ของสตริง หากต้องการตั้งค่าขอบเขตที่โปรเจ็กต์ใช้ ให้แทนที่เนื้อหาของอาร์เรย์นี้ด้วยขอบเขตที่คุณต้องการใช้ ตัวอย่างเช่น{ ... "oauthScopes": [ "https://www.googleapis.com/auth/spreadsheets.readonly", "https://www.googleapis.com/auth/userinfo.email" ], ... }
- คลิกบันทึก ที่ด้านบน
การยืนยัน OAuth
ขอบเขต OAuth บางรายการมีความละเอียดอ่อนเนื่องจากอนุญาตให้เข้าถึงข้อมูลผู้ใช้ของ Google หากโปรเจ็กต์สคริปต์ของคุณใช้ขอบเขตที่อนุญาตให้เข้าถึงข้อมูลผู้ใช้ โปรเจ็กต์จะต้องผ่านการยืนยันไคลเอ็นต์ OAuth ก่อนจึงจะเผยแพร่แบบสาธารณะเป็นเว็บแอปหรือส่วนเสริมได้ สำหรับข้อมูลเพิ่มเติม โปรดดูคำแนะนำต่อไปนี้
- การยืนยันไคลเอ็นต์ OAuth สำหรับ Apps Script
- แอปที่ยังไม่ได้รับการยืนยัน
- คำถามที่พบบ่อยเกี่ยวกับการยืนยัน OAuth
- บริการ Google APIs: นโยบายข้อมูลผู้ใช้
ขอบเขตที่จำกัด
นอกเหนือจากขอบเขตที่ละเอียดอ่อนแล้ว ขอบเขตบางอย่างจะจัดเป็นจำกัดและขึ้นอยู่กับกฎเพิ่มเติมที่ช่วยปกป้องข้อมูลผู้ใช้ หากคุณตั้งใจที่จะเผยแพร่เว็บแอปหรือส่วนเสริมที่ใช้ขอบเขตที่จำกัดอย่างน้อย 1 ขอบเขต แอปต้องเป็นไปตามข้อจำกัดทั้งหมดที่ระบุไว้ก่อนจึงจะเผยแพร่ได้
ตรวจสอบรายการขอบเขตที่จำกัดทั้งหมดก่อนที่จะพยายามเผยแพร่ หากแอปใช้ขอบเขตดังกล่าว คุณต้องปฏิบัติตาม ข้อกำหนดเพิ่มเติมสำหรับขอบเขต API เฉพาะ ก่อนเผยแพร่