ผู้ใช้ต้องให้สิทธิ์ส่วนเสริมและแอปพลิเคชันอื่นๆ ที่เข้าถึงข้อมูลของตนหรือดําเนินการในนามของผู้ใช้ เมื่อผู้ใช้เรียกใช้ส่วนเสริมเป็นครั้งแรก UI ส่วนเสริมจะแสดงข้อความแจ้งการให้สิทธิ์เพื่อเริ่มขั้นตอนการให้สิทธิ์
ในขั้นตอนนี้ ข้อความแจ้งจะแจ้งให้ผู้ใช้ทราบว่าแอปพลิเคชันต้องการสิทธิ์อะไร เช่น ส่วนเสริมอาจต้องสิทธิ์ในการอ่านข้อความอีเมลของผู้ใช้หรือสร้างกิจกรรมในปฏิทิน โปรเจ็กต์สคริปต์ของส่วนเสริมจะกําหนดสิทธิ์แต่ละรายการเหล่านี้เป็นขอบเขต OAuth
คุณประกาศขอบเขตในไฟล์ Manifest โดยใช้สตริง URL ในขั้นตอนการให้สิทธิ์ Apps Script จะแสดงคําอธิบายขอบเขตที่มนุษย์อ่านได้แก่ผู้ใช้ เช่น ส่วนเสริม Google Workspace อาจใช้ขอบเขต "อ่านข้อความปัจจุบัน" ซึ่งเขียนไว้ในไฟล์ Manifest เป็น https://www.googleapis.com/auth/gmail.addons.current.message.readonly
ในขั้นตอนการให้สิทธิ์ ส่วนเสริมที่มีขอบเขตนี้จะขอให้ผู้ใช้อนุญาตส่วนเสริมเพื่อดูข้อความอีเมลเมื่อส่วนเสริมทํางาน
กําลังดูขอบเขต
คุณดูขอบเขตที่โปรเจ็กต์สคริปต์ต้องการได้โดยทําดังต่อไปนี้
- เปิดโปรเจ็กต์สคริปต์
- คลิกภาพรวม ทางด้านซ้าย
- ดูขอบเขตใน "ขอบเขต OAuth ของโปรเจ็กต์"
นอกจากนี้ คุณยังดูขอบเขตปัจจุบันของโปรเจ็กต์สคริปต์ในไฟล์ Manifest ของโปรเจ็กต์ใต้ช่อง oauthScopes
ได้เฉพาะเมื่อตั้งค่าขอบเขตเหล่านั้นอย่างชัดแจ้งเท่านั้น
การกําหนดขอบเขตที่ชัดเจน
Apps Script จะกําหนดขอบเขตที่สคริปต์ต้องการโดยอัตโนมัติด้วยการสแกนโค้ดสําหรับการเรียกใช้ฟังก์ชันที่ต้องใช้สคริปต์ สําหรับสคริปต์ส่วนใหญ่ถือว่าเพียงพอและช่วยประหยัดเวลาได้ แต่สําหรับส่วนเสริมที่เผยแพร่แล้ว คุณควรควบคุมขอบเขตโดยตรงมากขึ้น
เช่น Apps Script อาจให้สิทธิ์ขอบเขตสคริปต์ของโปรเจ็กต์ส่วนเสริมhttps://mail.google.com
ที่มีสิทธิ์เริ่มต้นอย่างมาก เมื่อผู้ใช้ให้สิทธิ์โปรเจ็กต์สคริปต์ที่มีขอบเขตนี้ โปรเจ็กต์จะได้รับสิทธิ์เข้าถึงบัญชี Gmail ของผู้ใช้อย่างเต็มรูปแบบ สําหรับส่วนเสริมที่เผยแพร่แล้ว คุณต้องแทนที่ขอบเขตนี้ด้วยชุดที่จํากัดมากขึ้นซึ่งครอบคลุมความต้องการของส่วนเสริมและอีกมากมาย
คุณสามารถกําหนดขอบเขตที่โปรเจ็กต์สคริปต์ใช้ได้อย่างชัดเจนโดยแก้ไขไฟล์ไฟล์ Manifest ช่องไฟล์ Manifest
oauthScopes
คืออาร์เรย์ของขอบเขตทั้งหมดที่ส่วนเสริมใช้ หากต้องการกําหนดขอบเขตของโปรเจ็กต์ ให้ทําตามขั้นตอนต่อไปนี้
- ดูขอบเขตที่ส่วนเสริมใช้อยู่ พิจารณาว่าคุณต้องทําการเปลี่ยนแปลงใดบ้าง เช่น การใช้ขอบเขตที่แคบลง
- เปิดไฟล์ Manifest ของส่วนเสริม
- ค้นหาช่องระดับบนสุดที่มีป้ายกํากับว่า
oauthScopes
หากไม่พบ ก็เพิ่มได้ ช่อง
oauthScopes
จะระบุอาร์เรย์ของสตริง ในการกําหนดขอบเขตที่โปรเจ็กต์ใช้ ให้แทนที่เนื้อหาของอาร์เรย์นี้ด้วยขอบเขตที่ต้องการใช้ เช่น ส่วนเสริมของ Google Workspace ที่ขยาย Gmail อาจแสดงดังนี้{ ... "oauthScopes": [ "https://www.googleapis.com/auth/gmail.addons.current.message.metadata", "https://www.googleapis.com/auth/userinfo.email" ], ... }
บันทึกการเปลี่ยนแปลงไฟล์ Manifest
การยืนยัน OAuth
การใช้ขอบเขต OAuth ที่มีความละเอียดอ่อนบางอย่างอาจทําให้ส่วนเสริมต้องผ่านการยืนยันไคลเอ็นต์ OAuth ก่อนจึงจะเผยแพร่ได้ สําหรับข้อมูลเพิ่มเติม โปรดดูคําแนะนําต่อไปนี้
- การยืนยันไคลเอ็นต์ OAuth สําหรับ Apps Script
- แอปที่ไม่ได้รับการยืนยัน
- คําถามที่พบบ่อยเกี่ยวกับการยืนยัน OAuth
- บริการ Google APIs: นโยบายข้อมูลผู้ใช้
ขอบเขตที่จํากัด
ขอบเขตบางรายการถูกจํากัดและอยู่ภายใต้กฎเพิ่มเติมที่ช่วยปกป้องข้อมูลผู้ใช้ หากต้องการเผยแพร่ส่วนเสริม Gmail หรือ Editor ที่ใช้ขอบเขตที่จํากัดอย่างน้อย 1 ขอบเขต ส่วนเสริมนั้นต้องเป็นไปตามข้อจํากัดที่ระบุไว้ทั้งหมดก่อนจึงจะเผยแพร่ได้
ตรวจสอบรายการขอบเขตที่จํากัดทั้งหมดก่อนพยายามเผยแพร่ หากส่วนเสริมใช้ส่วนเสริมใด คุณต้องทําตามข้อกําหนดเพิ่มเติมสําหรับขอบเขต API ที่เฉพาะเจาะจงก่อนเผยแพร่
ขอบเขตปฏิทิน
ด้านล่างนี้เป็นขอบเขตที่ใช้บ่อยสําหรับส่วนเสริม Google Workspace ที่ขยาย Google ปฏิทิน
ขอบเขต | |
---|---|
เข้าถึงข้อมูลเมตาของเหตุการณ์ |
https://www.googleapis.com/auth/calendar.addons.execute
ต้องระบุหากส่วนเสริมเข้าถึงข้อมูลเมตาของกิจกรรมในปฏิทิน อนุญาตให้ส่วนเสริมเข้าถึงข้อมูลเมตาของเหตุการณ์ |
อ่านข้อมูลเหตุการณ์ที่ผู้ใช้สร้างขึ้น |
https://www.googleapis.com/auth/calendar.addons.current.event.read
ต้องระบุหากส่วนเสริมต้องอ่านข้อมูลเหตุการณ์ที่ผู้ใช้สร้างขึ้น
อนุญาตให้ส่วนเสริมเข้าถึงข้อมูลเหตุการณ์ที่ผู้ใช้สร้างขึ้น ข้อมูลนี้จะใช้ได้เฉพาะเมื่อ
ช่อง Manifest |
เขียนข้อมูลเหตุการณ์ที่ผู้ใช้สร้างขึ้น |
https://www.googleapis.com/auth/calendar.addons.current.event.write
ต้องระบุหากส่วนเสริมต้องเขียนข้อมูลเหตุการณ์ที่ผู้ใช้สร้างขึ้น
อนุญาตให้ส่วนเสริมแก้ไขข้อมูลเหตุการณ์ที่ผู้ใช้สร้างขึ้น ข้อมูลนี้จะใช้ได้เฉพาะเมื่อ
ช่อง Manifest |
ขอบเขตในไดรฟ์
ด้านล่างนี้เป็นขอบเขตที่มีการใช้งานบ่อยสําหรับส่วนเสริม Google Workspace ที่ขยาย Google ไดรฟ์
ขอบเขต | |
---|---|
อ่านข้อมูลเมตาของรายการที่เลือก |
https://www.googleapis.com/auth/drive.addons.metadata.readonly
ต้องระบุหากส่วนเสริมใช้อินเทอร์เฟซตามบริบทที่ทริกเกอร์เมื่อผู้ใช้เลือกรายการในไดรฟ์ อนุญาตให้ส่วนเสริมอ่านข้อมูลเมตาแบบจํากัดเกี่ยวกับรายการที่ผู้ใช้เลือกใน Google ไดรฟ์ ข้อมูลเมตาจะจํากัดอยู่ที่รหัส ชื่อ ประเภท MIME, URL ของไอคอน และส่วนเสริมนั้นมีสิทธิ์เข้าถึงรายการหรือไม่ |
สิทธิ์เข้าถึงต่อไฟล์ |
https://www.googleapis.com/auth/drive.file
แนะนําหากส่วนเสริมต้องใช้เพื่อเข้าถึงไฟล์ในไดรฟ์แต่ละรายการ
ให้สิทธิ์เข้าถึงไฟล์แต่ละรายการที่แอปสร้างขึ้นหรือเปิดโดยใช้
บริการไดรฟ์ขั้นสูงของ Apps Script แต่ไม่อนุญาตให้ใช้การดําเนินการที่คล้ายกันโดยใช้บริการไดรฟ์พื้นฐาน ระบบจะให้สิทธิ์ในไฟล์ทีละไฟล์และเพิกถอนเมื่อผู้ใช้ยกเลิกการให้สิทธิ์แอป |
ขอบเขตส่วนเสริมของ Gmail
มีบางขอบเขตที่สร้างขึ้นสําหรับส่วนเสริม Google Workspace โดยเฉพาะเพื่อช่วยปกป้องข้อมูล Gmail ของผู้ใช้ คุณต้องเพิ่มขอบเขตเหล่านี้อย่างชัดแจ้งลงในไฟล์ Manifest ของส่วนเสริม และข้อมูลอื่นๆ ที่โค้ดส่วนเสริมของคุณต้องใช้
ด้านล่างนี้เป็นขอบเขตที่ใช้บ่อยสําหรับส่วนเสริม Google Workspace ที่ขยาย Gmail การเพิ่มป้ายกํากับต้องระบุลงในไฟล์ Manifest ของส่วนเสริม Google Workspace หากส่วนเสริมขยาย Gmail
อย่าลืมแทนที่ขอบเขต https://mail.google.com
ที่กว้างมากในส่วนเสริมด้วยขอบเขตที่แคบลงซึ่งอนุญาตการโต้ตอบที่จําเป็นสําหรับส่วนเสริมของคุณและอื่นๆ
ขอบเขต | |
---|---|
สร้างฉบับร่างใหม่ |
https://www.googleapis.com/auth/gmail.addons.current.action.compose
ต้องระบุหากส่วนเสริมใช้ ทริกเกอร์การดําเนินการเขียน อนุญาตให้ส่วนเสริมสร้างข้อความร่างและการตอบใหม่ชั่วคราว ดูรายละเอียดที่หัวข้อ การเขียนข้อความฉบับร่าง ขอบเขตนี้ยังใช้กับ การดําเนินการเขียนด้วย ต้องใช้โทเค็นเพื่อการเข้าถึง |
อ่านข้อมูลเมตาของข้อความที่เปิดอยู่ |
https://www.googleapis.com/auth/gmail.addons.current.message.metadata
ให้สิทธิ์การเข้าถึงข้อมูลเมตาของข้อความแบบเปิดเป็นการชั่วคราว (เช่น หัวเรื่องหรือผู้รับ) ไม่อนุญาตให้อ่านเนื้อหาข้อความและต้องใช้โทเค็นเพื่อการเข้าถึง ต้องระบุหากส่วนเสริมใช้ข้อมูลเมตาในทริกเกอร์การดําเนินการเขียน สําหรับ การดําเนินการเขียน จําเป็นต้องมีขอบเขตนี้หากทริกเกอร์การเขียนต้องการสิทธิ์เข้าถึงข้อมูลเมตา ในทางปฏิบัติ ขอบเขตนี้ช่วยให้การเขียนทริกเกอร์เข้าถึงรายการผู้รับการเข้าถึง (to:, cc: และ bcc:) ของฉบับร่างอีเมลตอบกลับได้ |
อ่านเนื้อหาของข้อความที่เปิด |
https://www.googleapis.com/auth/gmail.addons.current.message.action
ให้สิทธิ์เข้าถึงเนื้อหาของข้อความที่เปิดอยู่เมื่อมีการโต้ตอบของผู้ใช้ เช่น เมื่อมีการเลือกรายการเมนูของส่วนเสริม ต้องใช้โทเค็นเพื่อการเข้าถึง |
อ่านเนื้อหาชุดข้อความที่เปิดอยู่ |
https://www.googleapis.com/auth/gmail.addons.current.message.readonly
ให้สิทธิ์ในการเข้าถึงข้อมูลเมตาและเนื้อหาของข้อความที่เปิดอยู่ชั่วคราว และยังให้สิทธิ์เข้าถึงเนื้อหาของข้อความอื่นๆ ในชุดข้อความที่เปิดอยู่ ต้องใช้โทเค็นเพื่อการเข้าถึง |
อ่านเนื้อหาและข้อมูลเมตาของข้อความ |
https://www.googleapis.com/auth/gmail.readonly
อ่านข้อมูลเมตาและเนื้อหาของอีเมล ซึ่งรวมถึงข้อความที่เปิดอยู่ ต้องระบุหากต้องการอ่านข้อมูลเกี่ยวกับข้อความอื่นๆ เช่น เมื่อทําการค้นหาหรืออ่านชุดข้อความอีเมลทั้งหมด |
โทเค็นเพื่อการเข้าถึง
ขอบเขต Gmail ที่ใช้ในส่วนเสริม Google Workspace จะให้สิทธิ์เข้าถึงข้อมูลชั่วคราวแก่ผู้ใช้เท่านั้นเพื่อปกป้องข้อมูลผู้ใช้ หากต้องการเปิดใช้การเข้าถึงชั่วคราว คุณต้องเรียกใช้ฟังก์ชัน GmailApp.setCurrentMessageAccessToken(accessToken)
โดยใช้โทเค็นเพื่อการเข้าถึงเป็นอาร์กิวเมนต์ คุณต้องรับโทเค็นเพื่อการเข้าถึงจากออบเจ็กต์เหตุการณ์การดําเนินการ
ตัวอย่างต่อไปนี้แสดงการตั้งค่าโทเค็นเพื่อการเข้าถึงเพื่ออนุญาตให้เข้าถึงข้อมูลเมตาของข้อความ ขอบเขตเดียวที่จําเป็นสําหรับตัวอย่างนี้คือ https://www.googleapis.com/auth/gmail.addons.current.message.metadata
function readSender(e) {
var accessToken = e.gmail.accessToken;
var messageId = e.gmail.messageId;
// The following function enables short-lived access to the current
// message in Gmail. Access to other Gmail messages or data isn't
// permitted.
GmailApp.setCurrentMessageAccessToken(accessToken);
var mailMessage = GmailApp.getMessageById(messageId);
return mailMessage.getFrom();
}
ขอบเขตผู้แก้ไข
ด้านล่างนี้เป็นขอบเขตที่มีการใช้งานบ่อยสําหรับส่วนเสริม Google Workspace ที่ขยายเอกสาร ชีต และสไลด์
ขอบเขต | |
---|---|
สิทธิ์เข้าถึงไฟล์เอกสารในปัจจุบัน |
https://www.googleapis.com/auth/documents.currentonly
ต้องระบุหากส่วนเสริมเข้าถึง API เอกสารของ Apps Script ให้สิทธิ์เข้าถึงเนื้อหาในเอกสารที่เปิดอยู่ชั่วคราว |
สิทธิ์เข้าถึงไฟล์ชีตปัจจุบัน |
https://www.googleapis.com/auth/spreadsheets.currentonly
ต้องระบุหากส่วนเสริมเข้าถึง Apps Script Sheets API ให้สิทธิ์เข้าถึงเนื้อหาในสเปรดชีตแบบเปิดชั่วคราว |
สิทธิ์เข้าถึงไฟล์สไลด์ปัจจุบัน |
https://www.googleapis.com/auth/presentations.currentonly
ต้องระบุหากส่วนเสริมเข้าถึง API ของ Apps Script Slides ให้สิทธิ์เข้าถึงเนื้อหาของงานนําเสนอแบบเปิดชั่วคราว |
สิทธิ์เข้าถึงต่อไฟล์ |
https://www.googleapis.com/auth/drive.file
ต้องระบุเพื่อให้ส่วนเสริมใช้ |
ขอบเขตอื่นๆ
ส่วนเสริมของคุณอาจต้องการขอบเขตเพิ่มเติมหากใช้บริการ Apps Script อื่นๆ ในกรณีส่วนใหญ่ คุณจะให้ Apps Script ตรวจหาขอบเขตเหล่านี้และอัปเดตไฟล์ Manifest โดยอัตโนมัติได้ เมื่อแก้ไขรายการขอบเขตของไฟล์ Manifest อย่านําขอบเขตออกเว้นแต่จะแทนที่ด้วยขอบเขตที่เหมาะสมกว่า เช่น ขอบเขตที่แคบลง
โปรดดูรายการขอบเขต Apps Script ที่มักใช้ควบคู่กับส่วนเสริมของ Google Workspace เพื่อเป็นข้อมูลอ้างอิง
ขอบเขต | |
---|---|
อ่านอีเมลของผู้ใช้ |
https://www.googleapis.com/auth/userinfo.email
อนุญาตให้โปรเจ็กต์อ่านอีเมลของผู้ใช้ปัจจุบัน |
อนุญาตให้โทรไปยังบริการภายนอก |
https://www.googleapis.com/auth/script.external_request
อนุญาตให้โปรเจ็กต์ส่งคําขอ |
อ่านภาษาและเขตเวลาของผู้ใช้ |
https://www.googleapis.com/auth/script.locale
อนุญาตให้โปรเจ็กต์เรียนรู้ภาษาและเขตเวลาของผู้ใช้ปัจจุบัน โปรดดูรายละเอียดที่หัวข้อ การเข้าถึงภาษาและเขตเวลาของผู้ใช้ |
สร้างทริกเกอร์ |
https://www.googleapis.com/auth/script.scriptapp
อนุญาตให้โปรเจ็กต์สร้าง ทริกเกอร์ |