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

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

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

คุณประกาศขอบเขตในไฟล์ Manifest โดยใช้สตริง URL ในระหว่างโฟลว์การให้สิทธิ์ Apps Script จะแสดงคำอธิบายขอบเขตที่มนุษย์อ่านได้ต่อผู้ใช้ ตัวอย่างเช่น ส่วนเสริมอาจใช้ขอบเขต "อ่านเอกสารปัจจุบัน" ซึ่งเขียนไว้ในไฟล์ Manifest เป็น https://www.googleapis.com/auth/documents.currentonly ในระหว่าง ขั้นตอนการให้สิทธิ์ ส่วนเสริมที่มีขอบเขตนี้จะขอให้ผู้ใช้อนุญาตให้ส่วนเสริม ดูและจัดการเอกสารที่มีการติดตั้งแอปพลิเคชันนี้

ขอบเขตการดู

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

  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 จะให้ข้อมูลการวินิจฉัยสำหรับขอบเขตทั้งหมด ซึ่งรวมถึงคำอธิบายของขอบเขตและระบุว่าขอบเขตนั้นเป็นข้อมูลที่ละเอียดอ่อนหรือถูกจำกัดหรือไม่

ขอบเขตส่วนเสริมของเอดิเตอร์

เมื่อสร้างส่วนเสริมของเอดิเตอร์ บริการ Apps Script และเมธอดที่โค้ดของส่วนเสริมใช้จะเป็นตัวกำหนดขอบเขตที่จำเป็น ตัวอย่างเช่น ส่วนเสริมของชีต อาจต้องใช้ https://www.googleapis.com/auth/spreadsheets.readonly ขอบเขตเพื่ออ่าน ข้อมูลจาก Google ชีตต่างๆ

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

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

  /**
   * @OnlyCurrentDoc
   */

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