ขอบเขตการให้สิทธิ์

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

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

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

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

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

กำลังดูขอบเขต

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

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

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

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

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

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

  1. เปิดโปรเจ็กต์สคริปต์
  2. คลิกการตั้งค่าโปรเจ็กต์ ทางด้านซ้าย
  3. เลือกช่องทำเครื่องหมายแสดงไฟล์ Manifest "appsscript.json" ในเครื่องมือแก้ไข
  4. คลิกตัดต่อวิดีโอ ทางด้านซ้าย
  5. คลิกไฟล์ appsscript.json ทางด้านซ้าย
  6. ค้นหาฟิลด์ระดับบนสุดที่มีป้ายกำกับ oauthScopes หากไม่มี คุณก็เพิ่มชื่อนั้นได้
  7. ช่อง oauthScopes ระบุอาร์เรย์ของสตริง หากต้องการตั้งค่าขอบเขตที่โปรเจ็กต์ใช้ ให้แทนที่เนื้อหาของอาร์เรย์นี้ด้วยขอบเขตที่คุณต้องการใช้ ตัวอย่างเช่น
          {
            ...
            "oauthScopes": [
              "https://www.googleapis.com/auth/spreadsheets.readonly",
              "https://www.googleapis.com/auth/userinfo.email"
            ],
           ...
          }
    
  8. คลิกบันทึก ที่ด้านบน

การยืนยัน OAuth

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

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

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

ตรวจสอบรายการขอบเขตที่จำกัดทั้งหมดก่อนที่จะพยายามเผยแพร่ หากแอปใช้ขอบเขตดังกล่าว คุณต้องปฏิบัติตาม ข้อกำหนดเพิ่มเติมสำหรับขอบเขต API เฉพาะ ก่อนเผยแพร่