ผู้ใช้ต้องให้สิทธิ์ส่วนเสริมและแอปพลิเคชันอื่นๆ ที่เข้าถึงข้อมูลของตนหรือดำเนินการในนามของผู้ใช้นั้น เมื่อผู้ใช้เรียกใช้ส่วนเสริมเป็นครั้งแรก 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
จะระบุอาร์เรย์ของสตริง หากต้องการกำหนดขอบเขตที่โปรเจ็กต์ใช้ ให้แทนที่เนื้อหาของอาร์เรย์นี้ด้วยขอบเขตที่คุณต้องการใช้ ตัวอย่างเช่น สำหรับส่วนเสริมของ Editor ที่ขยายชีตดังกล่าว คุณอาจมีสิ่งต่อไปนี้{ ... "oauthScopes": [ "https://www.googleapis.com/auth/script.container.ui", "https://www.googleapis.com/auth/spreadsheets.currentonly" ], ... }
บันทึกการเปลี่ยนแปลงในไฟล์ Manifest
การยืนยัน OAuth
การใช้ขอบเขต OAuth ที่มีความละเอียดอ่อนบางขอบเขตอาจกำหนดให้ส่วนเสริมต้องผ่านการยืนยันไคลเอ็นต์ OAuth ก่อน จึงจะเผยแพร่ได้ สำหรับข้อมูลเพิ่มเติม โปรดดูคำแนะนำต่อไปนี้
- การยืนยันไคลเอ็นต์ OAuth สำหรับ Apps Script
- แอปที่ไม่ได้รับการยืนยัน
- คำถามที่พบบ่อยเกี่ยวกับการยืนยัน OAuth
- บริการ Google APIs: นโยบายข้อมูลผู้ใช้
ขอบเขตที่จำกัด
บางขอบเขตจะมีการจำกัดและขึ้นอยู่กับกฎเพิ่มเติมที่จะช่วยปกป้องข้อมูลผู้ใช้ หากต้องการเผยแพร่ส่วนเสริม Gmail หรือ Editor ที่ใช้ขอบเขตที่จำกัด 1 รายการขึ้นไป ส่วนเสริมต้องเป็นไปตามข้อจำกัดที่ระบุไว้ทั้งหมดก่อนจึงจะเผยแพร่ได้
ตรวจสอบรายการขอบเขตที่จำกัดทั้งหมดก่อนที่จะพยายามเผยแพร่ หากส่วนเสริมของคุณใช้อย่างใดอย่างหนึ่ง คุณต้องปฏิบัติตามข้อกำหนดเพิ่มเติมสำหรับขอบเขต API ที่เฉพาะเจาะจงก่อนการเผยแพร่
ขอบเขตส่วนเสริมของเอดิเตอร์
เมื่อสร้างส่วนเสริม Editor ขอบเขตที่จำเป็นจะกำหนดโดยบริการ Apps Script และวิธีที่โค้ดส่วนเสริมใช้ เช่น ส่วนเสริมของชีตอาจต้องใช้ขอบเขต https://www.googleapis.com/auth/spreadsheets.readonly
เพื่ออ่านข้อมูลจาก Google ชีตอื่น
Apps Script จะกำหนดขอบเขตที่บริการที่คุณใช้โดยอัตโนมัติเมื่อคุณเพิ่มโค้ดลงในโปรเจ็กต์สคริปต์ สําหรับส่วนเสริมของ Editor คุณมักจะใช้คอลเล็กชันขอบเขตอัตโนมัตินี้แทนที่จะกําหนดขอบเขตด้วยตนเองและตั้งค่าอย่างชัดแจ้ง
หากคุณไม่ได้ตั้งค่าขอบเขตไว้อย่างชัดแจ้ง และส่วนเสริมของ Editor จะอ่านหรือเขียนไปยังไฟล์เครื่องมือแก้ไขที่เปิดอยู่เท่านั้น ให้เพิ่มความคิดเห็นต่อไปนี้ลงในไฟล์โปรเจ็กต์สคริปต์ไฟล์ใดไฟล์หนึ่งของคุณ
/**
* @OnlyCurrentDoc
*/
ความคิดเห็นนี้จะบอกให้ Apps Script จำกัดขอบเขตของไฟล์เครื่องมือแก้ไขที่ตั้งค่าเป็น currentonly
เช่น หากเพิ่มความคิดเห็นนี้ลงในไฟล์โปรเจ็กต์สคริปต์ส่วนเสริมของ Google ชีต คุณกำลังระบุว่าส่วนเสริมต้องการสิทธิ์ในการทำงานบนชีตที่เปิดอยู่เท่านั้น ไม่ใช่ชีตอื่นๆ ที่ผู้ใช้อาจมีใน Google ไดรฟ์ ในทางกลับกัน คุณก็ไม่ควรใช้ความคิดเห็นนี้หากส่วนเสริมของชีตจำเป็นต้องอ่านหรือเขียนข้อมูลในชีตที่ผู้ใช้ไม่ได้เปิดอยู่ในขณะนี้