ผู้ใช้ต้องให้สิทธิ์โปรเจ็กต์สคริปต์ที่เข้าถึงข้อมูลหรือดําเนินการในนามของโครงการ เมื่อผู้ใช้เรียกใช้สคริปต์ที่ต้องมีการให้สิทธิ์เป็นครั้งแรก 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 เฉพาะก่อนเผยแพร่