จัดการการอนุมัติ

เอกสารนี้อธิบายวิธีจัดการการอนุมัติใน Google ไดรฟ์ API

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

คุณสามารถสร้างและจัดการการอนุมัติเนื้อหาในไดรฟ์ได้ Google Drive API มีแหล่งข้อมูล approvals สำหรับใช้กับการอนุมัติไฟล์ วิธีการของapprovalsแหล่งข้อมูลจะใช้ได้กับ รายการในไดรฟ์, Google เอกสาร และเครื่องมือแก้ไขอื่นๆ ของ Google Workspace ผู้ตรวจสอบจะอนุมัติ ปฏิเสธ หรือแสดงความคิดเห็นเกี่ยวกับเอกสารได้โดยตรง

ก่อนเริ่มต้น

  1. ไฟล์ของคุณควรมีความสามารถ canStartApproval หากต้องการตรวจสอบความสามารถของไฟล์ ให้เรียกใช้เมธอด get ในทรัพยากร files โดยใช้พารามิเตอร์เส้นทาง fileId และใช้ฟิลด์ความสามารถ canStartApproval ในพารามิเตอร์ fields ดูข้อมูลเพิ่มเติมได้ที่ทำความเข้าใจความสามารถของไฟล์

    canStartApprovalความสามารถfalseของบูลีนจะเป็นจริงเมื่อ

    • การตั้งค่าของผู้ดูแลระบบจำกัดการเข้าถึงฟีเจอร์
    • รุ่น Google Workspace ของคุณไม่มีสิทธิ์
    • ผู้ใช้ภายนอกโดเมนเป็นเจ้าของไฟล์
    • ผู้ใช้ไม่มีสิทธิ์ role=writer ในไฟล์
  2. โปรดตรวจสอบว่าคุณได้แชร์ไฟล์เป้าหมายกับผู้ตรวจสอบด้วยตนเอง โดยไดรฟ์จะไม่ยกเว้นกลุ่มผู้ใช้ดังกล่าวโดยอัตโนมัติ หากผู้ตรวจสอบไม่มีสิทธิ์เข้าถึงไฟล์ คำขออนุมัติจะสำเร็จ แต่ผู้ตรวจสอบจะไม่ได้รับการแจ้งเตือนหรือดูไฟล์ได้

แนวคิด

แนวคิดหลักต่อไปนี้เป็นรากฐานของการอนุมัติ

Approval status

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

ทรัพยากร approvals มีออบเจ็กต์ Status ที่แสดงรายละเอียดสถานะ การอนุมัติเมื่อมีการขอทรัพยากร นอกจากนี้ ยังมีออบเจ็กต์ ReviewerResponse ที่ แสดงรายละเอียดการตอบกลับการอนุมัติที่ผู้ตรวจสอบบางรายดำเนินการ คำตอบของแต่ละผู้ตรวจสอบจะแสดงด้วยออบเจ็กต์ Response

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

ผู้ตรวจสอบทุกคนต้องอนุมัติการอนุมัติ ผู้ตรวจสอบที่ปฏิเสธการอนุมัติจะตั้งค่าสถานะเสร็จสมบูรณ์เป็น DECLINED

หลังจากอนุมัติเสร็จสมบูรณ์ (สถานะเป็น APPROVED, CANCELLED หรือ DECLINED) สถานะจะยังคงเป็น "เสร็จสมบูรณ์" และผู้เริ่มหรือผู้ตรวจสอบจะไม่สามารถโต้ตอบได้ คุณแสดงความคิดเห็นในการอนุมัติที่เสร็จสมบูรณ์ได้ตราบใดที่ไม่มีการอนุมัติไฟล์ที่มีสถานะเป็น IN_PROGRESS

วงจรการอนุมัติ

วงจรการอนุมัติ
รูปที่ 1 วงจรการอนุมัติ

การอนุมัติจะผ่านสถานะต่างๆ หลายสถานะในวงจร รูปที่ 1 แสดง ขั้นตอนระดับสูงของวงจรการอนุมัติ

  1. เริ่มการอนุมัติ โทรหา start เพื่อเริ่มคำขออนุมัติ จากนั้นระบบจะตั้งค่า status เป็น IN_PROGRESS

  2. รอการอนุมัติ ขณะที่รอการอนุมัติ (status ตั้งค่าเป็น IN_PROGRESS) ทั้งผู้เริ่มและผู้ตรวจสอบจะโต้ตอบกับคำขอได้ โดยผู้ใช้ สามารถเพิ่มcomment ผู้เริ่ม สามารถreassign ผู้ตรวจสอบ และผู้ตรวจสอบ อย่างน้อย 1 คนสามารถapprove คำขอ

  3. การอนุมัติอยู่ในสถานะเสร็จสมบูรณ์ การอนุมัติจะเข้าสู่สถานะเสร็จสมบูรณ์ (status ตั้งค่าเป็น APPROVED, CANCELLED หรือ DECLINED) เมื่อผู้ตรวจสอบทั้งหมด อนุมัติคำขอ ผู้เริ่มเลือกที่จะcancelคำขอ หรือหากผู้ตรวจสอบเลือกที่จะdeclineคำขอ

ใช้พารามิเตอร์ฟิลด์

หากต้องการระบุช่องที่จะแสดงผลในการตอบกลับ คุณสามารถตั้งค่าfields พารามิเตอร์ระบบ ด้วยเมธอดใดก็ได้ของทรัพยากร approvals หากคุณละเว้นพารามิเตอร์ fields เซิร์ฟเวอร์จะแสดงผลชุดฟิลด์เริ่มต้นที่เจาะจงสำหรับเมธอด หากต้องการแสดงฟิลด์อื่น ให้ดูแสดงฟิลด์ที่เฉพาะเจาะจง

เริ่มและดูแลการอนุมัติ

คุณสามารถใช้ทรัพยากร approvals เพื่อเริ่ม และจัดการการอนุมัติโดยใช้ Drive API เมธอดเหล่านี้ใช้ได้กับขอบเขต OAuth 2.0 Drive API ที่มีอยู่ทั้งหมดซึ่งอนุญาตให้เขียนข้อมูลเมตาของไฟล์ ดูข้อมูลเพิ่มเติมได้ที่เลือกขอบเขต Google Drive API

เริ่มการอนุมัติ

หากต้องการเริ่มการอนุมัติใหม่ในไฟล์ ให้ใช้วิธี start ในแหล่งข้อมูล approvals และรวมพารามิเตอร์เส้นทาง fileId

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

  • dueTime: กำหนดเวลาสำหรับการอนุมัติในรูปแบบ RFC 3339
  • lockFile: บูลีนที่ระบุว่าจะล็อกไฟล์เมื่อเริ่มการอนุมัติหรือไม่ ซึ่งจะบล็อกไม่ให้ผู้ใช้แก้ไขไฟล์ในระหว่างกระบวนการอนุมัติ ผู้ใช้ที่มีrole=writerสิทธิ์จะนำการล็อกนี้ออกได้
  • message: ข้อความที่กำหนดเองซึ่งส่งถึงผู้ตรวจสอบ

เนื้อหาของการตอบกลับมีอินสแตนซ์ของทรัพยากร approvals และมีฟิลด์ initiator ซึ่งเป็นผู้ใช้ที่ขออนุมัติ ตั้งค่าการอนุมัติ Status เป็น IN_PROGRESS

หากมีการอนุมัติที่มีอยู่ซึ่งมี Status เป็น IN_PROGRESS วิธี start จะล้มเหลว คุณจะเริ่มการอนุมัติได้ก็ต่อเมื่อไม่มีการอนุมัติไฟล์อยู่แล้วหรือการอนุมัติที่มีอยู่เสร็จสมบูรณ์แล้ว (สถานะเป็น APPROVED, CANCELLED หรือ DECLINED)

curl

curl -X POST 'https://www.googleapis.com/drive/v3/files/FILE_ID/approvals:start' \
 -H 'Authorization: Bearer ACCESS_TOKEN' \
 -H 'Content-Type: application/json' \
 -d '{
    "reviewerEmails": [
     "reviewer1@example.com",
     "reviewer2@example.com"
    ],
    "dueTime": "2026-04-01T15:01:23Z",
    "lockFile": true,
    "message": "Please review this file for approval."
 }'

แทนที่ค่าต่อไปนี้

  • FILE_ID: รหัสของไฟล์ที่ต้องขออนุมัติ
  • ACCESS_TOKEN: โทเค็น OAuth 2.0 ของแอป

แสดงความคิดเห็นเกี่ยวกับการอนุมัติ

หากต้องการแสดงความคิดเห็นเกี่ยวกับการอนุมัติ ให้ใช้วิธี comment ในแหล่งข้อมูล approvals และรวมพารามิเตอร์เส้นทาง fileId และ approvalId

เนื้อหาของคำขอประกอบด้วยฟิลด์ message ที่ต้องระบุซึ่งเป็นสตริงที่มีความคิดเห็นที่คุณต้องการเพิ่มในการอนุมัติ

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

curl

curl -X POST 'https://www.googleapis.com/drive/v3/files/FILE_ID/approvals/APPROVAL_ID:comment' \
 -H 'Authorization: Bearer ACCESS_TOKEN' \
 -H 'Content-Type: application/json' \
 -d '{
    "message": "The required comment on the approval."
 }'

แทนที่ค่าต่อไปนี้

  • FILE_ID: รหัสของไฟล์ที่ต้องขออนุมัติ
  • APPROVAL_ID: รหัสของการอนุมัติ
  • ACCESS_TOKEN: โทเค็น OAuth 2.0 ของแอป

มอบหมายผู้ตรวจสอบอีกครั้งเมื่อได้รับอนุมัติ

หากต้องการกำหนดผู้ตรวจสอบใหม่ในการอนุมัติ ให้ใช้วิธีการ reassign ในแหล่งข้อมูล approvals และรวมพารามิเตอร์เส้นทาง fileId และ approvalId

เมธอด reassign ช่วยให้ผู้เริ่มการอนุมัติ (หรือผู้ใช้ที่มีสิทธิ์ role=writer) เพิ่มหรือแทนที่ผู้ตรวจสอบในออบเจ็กต์ ReviewerResponse ของทรัพยากร approvals ผู้ใช้ที่มีสิทธิ์ role=reader จะมอบหมายการอนุมัติที่มอบหมายให้ตนเองได้เท่านั้น ซึ่งจะช่วยให้ผู้ใช้มอบหมายคำขอ ให้ผู้อื่นที่เป็นผู้ตรวจสอบที่มีความสามารถมากกว่าได้

คุณจะมอบหมายผู้ตรวจสอบใหม่ได้ก็ต่อเมื่อStatus มีสถานะเป็นIN_PROGRESS และฟิลด์response สำหรับผู้ตรวจสอบที่ได้รับมอบหมายใหม่ตั้งค่าเป็นNO_RESPONSE

โปรดทราบว่าคุณไม่สามารถนำผู้อนุมัติออกได้ หากต้องการนำผู้ตรวจสอบออก คุณต้องยกเลิกการอนุมัติและเริ่มการอนุมัติใหม่

เนื้อหาของคำขอประกอบด้วยฟิลด์ addReviewers และ replaceReviewers ซึ่งไม่บังคับ แต่ละฟิลด์มี ออบเจ็กต์ที่ทำซ้ำสำหรับ AddReviewer และ ReplaceReviewer ซึ่งแต่ละรายการมีผู้ตรวจสอบคนเดียวที่จะเพิ่มหรือผู้ตรวจสอบ 2 คนที่จะแทนที่ นอกจากนี้ คุณยังเพิ่มฟิลด์ message (ไม่บังคับ) ที่มีข้อความที่คุณต้องการส่งให้ผู้ตรวจสอบใหม่ได้ด้วย

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

curl

curl -X POST 'https://www.googleapis.com/drive/v3/files/FILE_ID/approvals/APPROVAL_ID:reassign' \
 -H 'Authorization: Bearer ACCESS_TOKEN' \
 -H 'Content-Type: application/json' \
 -d '{
    "addReviewers": [
    {
        "addedReviewerEmail": "new_reviewer@example.com"
    }
    ],
    "replaceReviewers": [
    {
        "addedReviewerEmail": "replacement_reviewer@example.com",
        "removedReviewerEmail": "old_reviewer@example.com"
    }
    ],
    "message": "Reassigning reviewers for this approval request."
 }'

แทนที่ค่าต่อไปนี้

  • FILE_ID: รหัสของไฟล์ที่ต้องขออนุมัติ
  • APPROVAL_ID: รหัสของการอนุมัติ
  • ACCESS_TOKEN: โทเค็น OAuth 2.0 ของแอป

ยกเลิกการอนุมัติ

หากต้องการยกเลิกการอนุมัติ ให้ใช้วิธี cancel ในทรัพยากร approvals และรวมพารามิเตอร์เส้นทาง fileId และ approvalId

เมธอด cancel จะเรียกได้โดยผู้เริ่มการอนุมัติ (หรือผู้ใช้ที่มีสิทธิ์ role=writer) เท่านั้นในขณะที่การอนุมัติ Status อยู่ในสถานะ IN_PROGRESS

เนื้อหาคำขอประกอบด้วย ฟิลด์ message ที่ไม่บังคับซึ่งเป็นสตริงที่มีข้อความที่จะส่งพร้อมกับการยกเลิก การอนุมัติ

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

curl

curl -X POST 'https://www.googleapis.com/drive/v3/files/FILE_ID/approvals/APPROVAL_ID:cancel' \
 -H 'Authorization: Bearer ACCESS_TOKEN' \
 -H 'Content-Type: application/json' \
 -d '{
    "message": "The optional reason for cancelling this approval request."
 }'

แทนที่ค่าต่อไปนี้

  • FILE_ID: รหัสของไฟล์ที่ต้องขออนุมัติ
  • APPROVAL_ID: รหัสของการอนุมัติ
  • ACCESS_TOKEN: โทเค็น OAuth 2.0 ของแอป

ปฏิเสธการอนุมัติ

หากต้องการปฏิเสธการอนุมัติ ให้ใช้วิธีการ decline ในทรัพยากร approvals และรวมพารามิเตอร์เส้นทาง fileId และ approvalId

เรียกใช้เมธอด decline ได้เฉพาะในขณะที่การอนุมัติ Status มีสถานะเป็น IN_PROGRESS เท่านั้น

เนื้อความของคำขอประกอบด้วย ฟิลด์ message ที่ไม่บังคับซึ่งเป็นสตริงที่มีข้อความที่จะแนบไปกับ การปฏิเสธการอนุมัติ

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

curl

curl -X POST 'https://www.googleapis.com/drive/v3/files/FILE_ID/approvals/APPROVAL_ID:decline' \
 -H 'Authorization: Bearer ACCESS_TOKEN' \
 -H 'Content-Type: application/json' \
 -d '{
    "message": "The optional reason for declining this approval request."
 }'

แทนที่ค่าต่อไปนี้

  • FILE_ID: รหัสของไฟล์ที่ต้องขออนุมัติ
  • APPROVAL_ID: รหัสของการอนุมัติ
  • ACCESS_TOKEN: โทเค็น OAuth 2.0 ของแอป

อนุมัติการอนุมัติ

หากต้องการอนุมัติการอนุมัติ ให้ใช้เมธอด approve ในทรัพยากร approvals และรวมพารามิเตอร์เส้นทาง fileId และ approvalId

เรียกใช้เมธอด approve ได้เฉพาะในขณะที่การอนุมัติ Status มีสถานะเป็น IN_PROGRESS เท่านั้น

เนื้อความของคำขอประกอบด้วย ฟิลด์ message ที่ไม่บังคับซึ่งเป็นสตริงที่มีข้อความที่จะ แนบไปกับการอนุมัติ

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

curl

curl -X POST 'https://www.googleapis.com/drive/v3/files/FILE_ID/approvals/APPROVAL_ID:approve' \
 -H 'Authorization: Bearer ACCESS_TOKEN' \
 -H 'Content-Type: application/json' \
 -d '{
    "message": "The optional reason for approving this approval request."
 }'

แทนที่ค่าต่อไปนี้

  • FILE_ID: รหัสของไฟล์ที่ต้องขออนุมัติ
  • APPROVAL_ID: รหัสของการอนุมัติ
  • ACCESS_TOKEN: โทเค็น OAuth 2.0 ของแอป

ค้นหาการอนุมัติที่มีอยู่

นอกจากนี้ ยังใช้แหล่งข้อมูล approvals เพื่อดู และแสดงสถานะการอนุมัติโดยใช้ Drive API ได้ด้วย

หากต้องการดูการอนุมัติในไฟล์ คุณต้องมีสิทธิ์อ่านข้อมูลเมตาของไฟล์ ดูข้อมูลเพิ่มเติมได้ที่บทบาทและ สิทธิ์

รับการอนุมัติ

หากต้องการรับการอนุมัติไฟล์ ให้ใช้วิธีการ get ในทรัพยากร approvals ที่มีพารามิเตอร์เส้นทาง fileId และ approvalId หากไม่ทราบรหัสการอนุมัติ คุณสามารถแสดง การอนุมัติโดยใช้เมธอด list

เนื้อหาการตอบกลับจะมีอินสแตนซ์ของทรัพยากร approvals

curl

curl -X GET 'https://www.googleapis.com/drive/v3/files/FILE_ID/approvals/APPROVAL_ID' \
 -H 'Authorization: Bearer ACCESS_TOKEN' \
 -H 'Accept: application/json'

แทนที่ค่าต่อไปนี้

  • FILE_ID: รหัสของไฟล์ที่ต้องขออนุมัติ
  • APPROVAL_ID: รหัสของการอนุมัติ
  • ACCESS_TOKEN: โทเค็น OAuth 2.0 ของแอป

แสดงรายการการอนุมัติ

หากต้องการแสดงรายการการอนุมัติในไฟล์ ให้เรียกใช้เมธอด list ในทรัพยากร approvals และรวมพารามิเตอร์เส้นทาง fileId

เนื้อหาการตอบกลับประกอบด้วย รายการการอนุมัติในไฟล์ ฟิลด์ items มีข้อมูลเกี่ยวกับการอนุมัติแต่ละรายการในรูปแบบของapprovals ทรัพยากร

นอกจากนี้ คุณยังส่งพารามิเตอร์การค้นหาต่อไปนี้เพื่อปรับแต่งการแบ่งหน้าหรือ กรองการอนุมัติได้ด้วย

  • pageSize: จำนวนการอนุมัติสูงสุดที่จะแสดงต่อหน้า หากไม่ได้ตั้งค่า pageSize เซิร์ฟเวอร์จะแสดงการอนุมัติสูงสุด 100 รายการ

  • pageToken: โทเค็นหน้าเว็บที่ได้รับจากการเรียกใช้ list ก่อนหน้า โทเค็นนี้ใช้เพื่อดึงข้อมูลหน้าถัดไป ควรตั้งค่าเป็นค่าของ nextPageToken จากการตอบกลับก่อนหน้า

curl

curl -X GET 'https://www.googleapis.com/drive/v3/files/FILE_ID/approvals?pageSize=10' \
 -H 'Authorization: Bearer ACCESS_TOKEN' \
 -H 'Accept: application/json'

แทนที่ค่าต่อไปนี้

  • FILE_ID: รหัสของไฟล์ที่ต้องขออนุมัติ
  • ACCESS_TOKEN: โทเค็น OAuth 2.0 ของแอป