ขอบเขตการให้สิทธิ์สําหรับส่วนเสริมของ Editor

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

ดูขอบเขต

คุณดูขอบเขตที่โปรเจ็กต์สคริปต์ต้องใช้ในปัจจุบันได้โดยทำดังนี้

  1. เปิดโปรเจ็กต์สคริปต์
  2. คลิกภาพรวม ทางด้านซ้าย
  3. ดูขอบเขตในส่วน "ขอบเขต OAuth ของโปรเจ็กต์"

นอกจากนี้ คุณยังดูขอบเขตปัจจุบันของโปรเจ็กต์สคริปต์ได้ในไฟล์ Manifest ของโปรเจ็กต์ ในฟิลด์ oauthScopes แต่จะดูได้ก็ต่อเมื่อคุณตั้งค่าขอบเขตเหล่านั้นอย่างชัดเจนเท่านั้น

ตั้งค่าขอบเขตที่ชัดเจน

Apps Script จะกำหนดขอบเขตที่สคริปต์ต้องการโดยอัตโนมัติ ด้วยการสแกนโค้ดเพื่อหาการเรียกฟังก์ชันที่ต้องใช้ขอบเขต สำหรับสคริปต์ส่วนใหญ่ การดำเนินการนี้ก็เพียงพอและช่วยประหยัดเวลา แต่สำหรับส่วนเสริมที่เผยแพร่แล้ว คุณควรควบคุมขอบเขตโดยตรงมากขึ้น

เช่น Apps Script อาจให้ขอบเขตที่อนุญาตมาก แก่โปรเจ็กต์สคริปต์ส่วนเสริม https://mail.google.comโดยค่าเริ่มต้น เมื่อผู้ใช้ให้สิทธิ์โปรเจ็กต์สคริปต์ ที่มีขอบเขตนี้ โปรเจ็กต์จะได้รับสิทธิ์เข้าถึงบัญชี Gmail ของผู้ใช้ อย่างเต็มรูปแบบ สำหรับส่วนเสริมที่เผยแพร่แล้ว คุณต้องแทนที่ขอบเขตนี้ด้วยชุดขอบเขตที่จำกัดมากขึ้นซึ่งครอบคลุมความต้องการของส่วนเสริมและไม่มีขอบเขตอื่น

คุณตั้งค่าขอบเขตที่โปรเจ็กต์สคริปต์ใช้ได้อย่างชัดเจนโดยการแก้ไขไฟล์Manifest ฟิลด์ Manifest oauthScopes คืออาร์เรย์ ของขอบเขตทั้งหมดที่ส่วนเสริมใช้ หากต้องการตั้งค่าขอบเขตของโปรเจ็กต์ ให้ทำดังนี้

  1. ดูขอบเขตที่ส่วนเสริมใช้ พิจารณาว่าต้องทำการเปลี่ยนแปลงใดบ้าง เช่น การใช้ขอบเขตที่แคบลง
  2. เปิดไฟล์ Manifest ของส่วนเสริม
  3. ค้นหาฟิลด์ระดับบนสุดที่มีป้ายกำกับว่า oauthScopes หากไม่มี คุณก็เพิ่มได้
  4. ฟิลด์ oauthScopes ระบุอาร์เรย์ของสตริง หากต้องการตั้งค่าขอบเขตที่โปรเจ็กต์ใช้ ให้แทนที่เนื้อหาของอาร์เรย์นี้ด้วยขอบเขตที่คุณต้องการให้ใช้ ตัวอย่างเช่น สำหรับ ส่วนเสริมของเอดิเตอร์ที่ขยายชีต คุณอาจมีสิ่งต่อไปนี้

     {
       ...
       "oauthScopes": [
         "https://www.googleapis.com/auth/script.container.ui",
         "https://www.googleapis.com/auth/spreadsheets"
       ],
       ...
     }
    

  5. บันทึกการเปลี่ยนแปลงไฟล์ Manifest

การยืนยัน OAuth

การใช้ขอบเขต OAuth ที่มีความละเอียดอ่อนบางอย่างอาจกำหนดให้ส่วนเสริมของคุณต้องผ่านการยืนยันไคลเอ็นต์ OAuth ก่อนจึงจะเผยแพร่ได้ ดูข้อมูลเพิ่มเติมได้ที่คู่มือต่อไปนี้

ขอบเขตที่จำกัด

ขอบเขตบางอย่างถูกจำกัดและอยู่ภายใต้กฎเพิ่มเติมที่ช่วยปกป้องข้อมูลผู้ใช้ หากคุณตั้งใจที่จะเผยแพร่ส่วนเสริม 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 ไดรฟ์ ในทางกลับกัน คุณไม่ควรใช้ความคิดเห็นนี้หากส่วนเสริมชีตต้องอ่านหรือเขียนข้อมูลในชีตที่ผู้ใช้ไม่ได้เปิดไว้