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