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

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

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

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

การยืนยัน OAuth

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

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

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