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