ผู้ใช้ต้องให้สิทธิ์โปรเจ็กต์สคริปต์ที่เข้าถึงข้อมูลของตนหรือดําเนินการในนามของตนเอง เมื่อผู้ใช้เรียกใช้สคริปต์ที่ต้องมีการให้สิทธิ์เป็นครั้งแรก 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 จะกําหนดขอบเขตของสคริปต์โดยอัตโนมัติโดยการสแกนโค้ดสําหรับการเรียกฟังก์ชันที่ต้องใช้สคริปต์ แต่สําหรับสคริปต์ส่วนใหญ่แล้วจะเพียงพอและช่วยประหยัดเวลาได้ แต่สําหรับส่วนเสริมและเว็บแอปที่เผยแพร่ คุณต้องควบคุมขอบเขตโดยตรงมากขึ้น
บางครั้ง Apps Script จะกําหนดขอบเขตที่ให้สิทธิ์โดยอัตโนมัติให้กับโปรเจ็กต์โดยอัตโนมัติ ซึ่งหมายความว่าสคริปต์จะถามผู้ใช้มากกว่าที่จําเป็น ซึ่งเป็นแนวทางปฏิบัติที่ไม่ถูกต้อง สําหรับสคริปต์ที่เผยแพร่ คุณต้องแทนที่ขอบเขตที่กว้างด้วยชุดที่จํากัดมากขึ้นซึ่งครอบคลุมความต้องการของสคริปต์และอื่นๆ อีกมากมาย
คุณกําหนดขอบเขตที่โปรเจ็กต์สคริปต์จะใช้ได้อย่างชัดเจนโดยแก้ไขไฟล์ไฟล์ Manifest ช่อง Manifest
oauthScopes
คืออาร์เรย์ของขอบเขตทั้งหมดที่โปรเจ็กต์ใช้ หากต้องการกําหนดขอบเขตของโปรเจ็กต์ ให้ทําตามขั้นตอนต่อไปนี้
- เปิดโปรเจ็กต์สคริปต์
- คลิกการตั้งค่าโปรเจ็กต์ ทางด้านซ้าย
- เลือกช่องทําเครื่องหมายแสดง "appsscript.json" ไฟล์ Manifest ในเครื่องมือแก้ไข
- คลิกตัดต่อวิดีโอ ที่ด้านซ้าย
- คลิกไฟล์
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 API: นโยบายข้อมูลผู้ใช้
ขอบเขตที่จํากัด
นอกเหนือจากขอบเขตที่มีความละเอียดอ่อนแล้ว ขอบเขตบางอย่างจัดอยู่ในประเภทจํากัดและอยู่ภายใต้กฎเพิ่มเติมที่ช่วยปกป้องข้อมูลผู้ใช้ หากต้องการเผยแพร่เว็บแอปหรือส่วนเสริมที่ใช้ขอบเขตที่จํากัด 1 รายการขึ้นไป แอปต้องเป็นไปตามข้อจํากัดทั้งหมดที่ระบุไว้ก่อนที่จะเผยแพร่ได้
ตรวจสอบรายการขอบเขตที่จํากัดทั้งหมดก่อนพยายามเผยแพร่ หากแอปปฏิบัติตามข้อกําหนด คุณจะต้องปฏิบัติตามข้อกําหนดเพิ่มเติมสําหรับขอบเขต API ที่เฉพาะเจาะจงก่อนเผยแพร่