ผู้ใช้ต้องให้สิทธิ์โปรเจ็กต์สคริปต์ที่เข้าถึงข้อมูลหรือดําเนินการในนามของตนเอง เมื่อผู้ใช้เรียกใช้สคริปต์ที่ต้องมีการให้สิทธิ์เป็นครั้งแรก UI จะแสดงข้อความแจ้งให้เริ่มขั้นตอนการให้สิทธิ์
ในระหว่างขั้นตอนนี้ UI จะแจ้งให้ผู้ใช้ทราบว่าสคริปต์ต้องการสิทธิ์อะไร เช่น สคริปต์อาจต้องสิทธิ์ในการอ่านข้อความอีเมลของผู้ใช้หรือสร้างกิจกรรมในปฏิทิน โปรเจ็กต์สคริปต์จะกําหนดสิทธิ์แต่ละรายการเหล่านี้เป็นขอบเขต OAuth
สําหรับสคริปต์ส่วนใหญ่ Apps Script จะตรวจหาขอบเขตที่จําเป็นสําหรับคุณโดยอัตโนมัติ โดยคุณสามารถดูขอบเขตที่สคริปต์ใช้ได้ทุกเมื่อ และคุณยังกําหนดขอบเขตอย่างชัดแจ้งในไฟล์ Manifest โดยใช้สตริง URL ได้อีกด้วย บางครั้งแอปพลิเคชันจําเป็นต้องใช้ขอบเขตอย่างชัดแจ้ง เช่น ส่วนเสริม เนื่องจากแอปพลิเคชันที่เผยแพร่ควรใช้ขอบเขตที่แคบที่สุดเท่าที่จะทําได้
ในขั้นตอนการให้สิทธิ์ Apps Script จะแสดงคําอธิบายขอบเขตที่จําเป็นที่ผู้ใช้สามารถอ่านได้ ตัวอย่างเช่น หากสคริปต์ต้องการสิทธิ์เข้าถึงสเปรดชีตแบบอ่านอย่างเดียว ไฟล์ Manifest อาจมีขอบเขต
https://www.googleapis.com/auth/spreadsheets.readonly
ระหว่างสคริปต์การให้สิทธิ์
ขอบเขตบางรายการจะรวมรายการอื่นๆ ไว้ด้วย ตัวอย่างเช่น เมื่อได้รับสิทธิ์ในขอบเขต https://www.googleapis.com/auth/spreadsheets
จะอนุญาตการอ่านและเขียนสเปรดชีต
กําลังดูขอบเขต
คุณดูขอบเขตที่โปรเจ็กต์สคริปต์ต้องการได้โดยทําดังต่อไปนี้
- เปิดโปรเจ็กต์สคริปต์
- คลิกภาพรวม ทางด้านซ้าย
- ดูขอบเขตในส่วนขอบเขต OAuth ของโครงการ
การกําหนดขอบเขตที่ชัดเจน
Apps Script จะกําหนดขอบเขตที่สคริปต์ต้องการโดยอัตโนมัติด้วยการสแกนโค้ดสําหรับการเรียกใช้ฟังก์ชันที่ต้องใช้สคริปต์ สําหรับสคริปต์ส่วนใหญ่ถือว่าเพียงพอและช่วยประหยัดเวลาได้ แต่สําหรับส่วนเสริมและเว็บแอปที่เผยแพร่อยู่ คุณต้องใช้การควบคุมขอบเขตโดยตรงมากขึ้น
บางครั้ง 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 เหล่านั้น คุณต้องปฏิบัติตามข้อกําหนดเพิ่มเติมสําหรับขอบเขต API เฉพาะก่อนที่จะเผยแพร่