ผู้ใช้ต้องให้สิทธิ์ส่วนเสริมและแอปพลิเคชันอื่นๆ ที่เข้าถึงข้อมูลของตน หรือดำเนินการในนามของตน เมื่อผู้ใช้เรียกใช้ส่วนเสริมเป็นครั้งแรก UI ของส่วนเสริมจะแสดงข้อความแจ้งการให้สิทธิ์เพื่อเริ่มขั้นตอนการให้สิทธิ์
ในระหว่างขั้นตอนการทำงานนี้ พรอมต์จะแจ้งให้ผู้ใช้ทราบว่าแอปพลิเคชันต้องการ สิทธิ์ทำอะไร เช่น ส่วนเสริมอาจต้องการสิทธิ์ในการอ่านข้อความอีเมลของผู้ใช้ หรือสร้างกิจกรรมในปฏิทินของผู้ใช้ โปรเจ็กต์สคริปต์ของส่วนเสริมจะกำหนดสิทธิ์แต่ละรายการเหล่านี้เป็นขอบเขต OAuth
คุณประกาศขอบเขตในไฟล์ Manifest
โดยใช้สตริง URL ในระหว่างโฟลว์การให้สิทธิ์ Apps Script จะแสดงคำอธิบายขอบเขตที่มนุษย์อ่านได้ต่อผู้ใช้ ตัวอย่างเช่น ส่วนเสริมอาจใช้ขอบเขต "อ่านเอกสารปัจจุบัน" ซึ่งเขียนไว้ในไฟล์ Manifest เป็น https://www.googleapis.com/auth/documents.currentonly
ในระหว่าง
ขั้นตอนการให้สิทธิ์ ส่วนเสริมที่มีขอบเขตนี้จะขอให้ผู้ใช้อนุญาตให้ส่วนเสริม
ดูและจัดการเอกสารที่มีการติดตั้งแอปพลิเคชันนี้
ขอบเขตการดู
คุณดูขอบเขตที่โปรเจ็กต์สคริปต์ต้องใช้ในปัจจุบันได้โดยทำดังนี้
- เปิดโปรเจ็กต์สคริปต์
- คลิกภาพรวม ทางด้านซ้าย
- ดูขอบเขตในส่วน "ขอบเขต OAuth ของโปรเจ็กต์"
นอกจากนี้ คุณยังดูขอบเขตปัจจุบันของโปรเจ็กต์สคริปต์ได้ในไฟล์ Manifest ของโปรเจ็กต์
ในฟิลด์ oauthScopes
แต่จะดูได้ก็ต่อเมื่อคุณตั้งค่าขอบเขตเหล่านั้นอย่างชัดเจนเท่านั้น
การตั้งค่าขอบเขตที่ชัดเจน
Apps Script จะกำหนดขอบเขตที่สคริปต์ต้องการโดยอัตโนมัติด้วยการสแกน โค้ดเพื่อหาการเรียกฟังก์ชันที่ต้องใช้ขอบเขต สำหรับสคริปต์ส่วนใหญ่ การดำเนินการนี้ก็เพียงพอและช่วยประหยัดเวลา แต่สำหรับส่วนเสริมที่เผยแพร่แล้ว คุณควรควบคุมขอบเขตโดยตรงมากขึ้น
ตัวอย่างเช่น Apps Script อาจให้สิทธิ์เข้าถึงที่กว้างมากแก่โปรเจ็กต์สคริปต์ส่วนเสริมhttps://mail.google.com
โดยค่าเริ่มต้น เมื่อผู้ใช้ให้สิทธิ์โปรเจ็กต์สคริปต์ที่มีขอบเขตนี้ โปรเจ็กต์จะได้รับสิทธิ์เข้าถึงบัญชี Gmail ของผู้ใช้โดยสมบูรณ์ สำหรับส่วนเสริมที่เผยแพร่แล้ว คุณต้องแทนที่ขอบเขตนี้ด้วยชุดขอบเขตที่จำกัดมากขึ้นซึ่งครอบคลุมความต้องการของส่วนเสริมและไม่มีขอบเขตอื่นๆ
คุณตั้งค่าขอบเขตที่โปรเจ็กต์สคริปต์ใช้ได้อย่างชัดเจนโดยการแก้ไขไฟล์Manifest ฟิลด์ไฟล์ Manifest
oauthScopes
คืออาร์เรย์
ของขอบเขตทั้งหมดที่ส่วนเสริมใช้ หากต้องการตั้งค่าขอบเขตของโปรเจ็กต์ ให้ทำดังนี้
- ดูขอบเขตที่ส่วนเสริมใช้อยู่ในปัจจุบัน พิจารณาว่าต้องทำการเปลี่ยนแปลงใดบ้าง เช่น การใช้ขอบเขตที่แคบลง
- เปิดไฟล์ Manifest ของส่วนเสริม
- ค้นหาฟิลด์ระดับบนสุดที่มีป้ายกำกับว่า
oauthScopes
หากไม่มี คุณก็เพิ่มได้ ฟิลด์
oauthScopes
ระบุอาร์เรย์ของสตริง หากต้องการตั้งค่าขอบเขตที่โปรเจ็กต์ใช้ ให้แทนที่เนื้อหาของอาร์เรย์นี้ด้วยขอบเขตที่คุณต้องการให้ใช้ ตัวอย่างเช่น สำหรับส่วนเสริมของเอดิเตอร์ที่ขยายชีต คุณอาจมีสิ่งต่อไปนี้{ ... "oauthScopes": [ "https://www.googleapis.com/auth/script.container.ui", "https://www.googleapis.com/auth/spreadsheets" ], ... }
บันทึกการเปลี่ยนแปลงไฟล์ Manifest
การยืนยัน OAuth
การใช้ขอบเขต OAuth ที่มีความละเอียดอ่อนบางอย่างอาจกำหนดให้ส่วนเสริมต้องผ่านการยืนยันไคลเอ็นต์ OAuth ก่อนจึงจะเผยแพร่ได้ ดูข้อมูลเพิ่มเติมได้ที่คู่มือต่อไปนี้
- การยืนยันไคลเอ็นต์ OAuth สำหรับ Apps Script
- แอปที่ไม่ผ่านการตรวจสอบ
- คำถามที่พบบ่อยเกี่ยวกับการยืนยัน OAuth
- บริการ Google API: นโยบายข้อมูลผู้ใช้
ขอบเขตที่จำกัด
ขอบเขตบางอย่างถูกจำกัดและอยู่ภายใต้กฎเพิ่มเติมที่ช่วย ปกป้องข้อมูลผู้ใช้ หากคุณต้องการเผยแพร่ส่วนเสริมของ Gmail หรือ Editor ที่ใช้ขอบเขตที่ถูกจำกัดอย่างน้อย 1 รายการ ส่วนเสริมต้องเป็นไปตามข้อจำกัดที่ระบุทั้งหมดก่อนจึงจะเผยแพร่ได้
โปรดดูรายการขอบเขตที่ถูกจำกัดทั้งหมด ก่อนที่จะพยายามเผยแพร่ หากส่วนเสริมใช้ API ใดก็ตาม คุณต้องปฏิบัติตามข้อกำหนดเพิ่มเติมสำหรับขอบเขต API ที่เฉพาะเจาะจง ก่อนที่จะเผยแพร่
ส่วนขยายเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ Google Workspace สำหรับ Visual Studio Code จะให้ข้อมูลการวินิจฉัยสำหรับขอบเขตทั้งหมด ซึ่งรวมถึงคำอธิบายของขอบเขตและระบุว่าขอบเขตนั้นเป็นข้อมูลที่ละเอียดอ่อนหรือถูกจำกัดหรือไม่
ขอบเขตส่วนเสริมของเอดิเตอร์
เมื่อสร้างส่วนเสริมของเอดิเตอร์ บริการ Apps Script และเมธอดที่โค้ดของส่วนเสริมใช้จะเป็นตัวกำหนดขอบเขตที่จำเป็น ตัวอย่างเช่น ส่วนเสริมของชีต
อาจต้องใช้
https://www.googleapis.com/auth/spreadsheets.readonly
ขอบเขตเพื่ออ่าน
ข้อมูลจาก Google ชีตต่างๆ
Apps Script จะกำหนดขอบเขตที่บริการที่คุณใช้ต้องใช้โดยอัตโนมัติเมื่อคุณเพิ่มโค้ดลงในโปรเจ็กต์สคริปต์ สำหรับส่วนเสริมของ Editor คุณมักจะ ใช้การรวบรวมขอบเขตอัตโนมัตินี้แทนการกำหนดขอบเขต ด้วยตนเองและการตั้งค่าอย่างชัดเจนได้
หากคุณไม่ได้ตั้งค่าขอบเขตอย่างชัดเจนและส่วนเสริมของเอดิเตอร์ของคุณอ่านหรือเขียนไปยังไฟล์เอดิเตอร์ที่เปิดอยู่เท่านั้น ให้เพิ่มความคิดเห็นต่อไปนี้ลงในไฟล์โปรเจ็กต์สคริปต์ไฟล์ใดไฟล์หนึ่ง
/**
* @OnlyCurrentDoc
*/
ความคิดเห็นนี้จะบอกให้ Apps Script จำกัดขอบเขตไฟล์ในเครื่องมือแก้ไขที่ตั้งค่าไว้เป็น
currentonly
ตัวอย่างเช่น หากคุณเพิ่มความคิดเห็นนี้ลงในไฟล์โปรเจ็กต์สคริปต์ของส่วนเสริม Google ชีต
คุณจะระบุว่าส่วนเสริมต้องการสิทธิ์ในการ
ดำเนินการในชีตที่เปิดอยู่เท่านั้น และไม่ใช่ชีตอื่นๆ ที่ผู้ใช้อาจมี
ใน Google ไดรฟ์ ในทางกลับกัน คุณไม่ควรใช้ความคิดเห็นนี้หากส่วนเสริมชีตต้องอ่านหรือเขียนข้อมูลในชีตที่ผู้ใช้ยังไม่ได้เปิด