เอกสารนี้อธิบายวิธีจัดการการอนุมัติใน Google ไดรฟ์ API
ผู้ใช้จะส่งเอกสารใน Google ไดรฟ์ผ่านกระบวนการอนุมัติอย่างเป็นทางการได้ คุณสามารถใช้กระบวนการนี้เพื่อขออนุมัติการตรวจสอบสัญญาหรือเอกสารทางการก่อนเผยแพร่ได้ การอนุมัติจะติดตามสถานะของการตรวจสอบ (เช่น อยู่ระหว่างดำเนินการ อนุมัติ หรือปฏิเสธ) และผู้ตรวจสอบที่เกี่ยวข้อง การอนุมัติเป็นวิธีที่ยอดเยี่ยมในการตรวจสอบเนื้อหาและบันทึกข้อมูลของ ผู้ตรวจสอบ
คุณสามารถสร้างและจัดการการอนุมัติเนื้อหาในไดรฟ์ได้ Google Drive API มีแหล่งข้อมูล approvals สำหรับใช้กับการอนุมัติไฟล์ วิธีการของapprovalsแหล่งข้อมูลจะใช้ได้กับ
รายการในไดรฟ์, Google เอกสาร และเครื่องมือแก้ไขอื่นๆ ของ Google Workspace
ผู้ตรวจสอบจะอนุมัติ ปฏิเสธ หรือแสดงความคิดเห็นเกี่ยวกับเอกสารได้โดยตรง
ก่อนเริ่มต้น
ไฟล์ของคุณควรมีความสามารถ
canStartApprovalหากต้องการตรวจสอบความสามารถของไฟล์ ให้เรียกใช้เมธอดgetในทรัพยากรfilesโดยใช้พารามิเตอร์เส้นทางfileIdและใช้ฟิลด์ความสามารถcanStartApprovalในพารามิเตอร์fieldsดูข้อมูลเพิ่มเติมได้ที่ทำความเข้าใจความสามารถของไฟล์canStartApprovalความสามารถfalseของบูลีนจะเป็นจริงเมื่อ- การตั้งค่าของผู้ดูแลระบบจำกัดการเข้าถึงฟีเจอร์
- รุ่น Google Workspace ของคุณไม่มีสิทธิ์
- ผู้ใช้ภายนอกโดเมนเป็นเจ้าของไฟล์
- ผู้ใช้ไม่มีสิทธิ์
role=writerในไฟล์
โปรดตรวจสอบว่าคุณได้แชร์ไฟล์เป้าหมายกับผู้ตรวจสอบด้วยตนเอง โดยไดรฟ์จะไม่ยกเว้นกลุ่มผู้ใช้ดังกล่าวโดยอัตโนมัติ หากผู้ตรวจสอบไม่มีสิทธิ์เข้าถึงไฟล์ คำขออนุมัติจะสำเร็จ แต่ผู้ตรวจสอบจะไม่ได้รับการแจ้งเตือนหรือดูไฟล์ได้
แนวคิด
แนวคิดหลักต่อไปนี้เป็นรากฐานของการอนุมัติ
Approval status
เมื่อคุณขออนุมัติเอกสาร กระบวนการอนุมัติจะช่วยให้มั่นใจว่าผู้ตรวจสอบทุกคนอนุมัติเนื้อหาเวอร์ชันเดียวกัน หากมีการแก้ไขไฟล์หลังจากที่ ผู้ตรวจสอบอนุมัติคำขอแล้ว และก่อนที่คำขอจะเสร็จสมบูรณ์ ระบบจะรีเซ็ตการอนุมัติของ ผู้ตรวจสอบ และผู้ตรวจสอบจะต้องอนุมัติเวอร์ชันใหม่ หาก มีการแก้ไขเนื้อหาหลังจากได้รับอนุมัติขั้นสุดท้าย แบนเนอร์จะปรากฏในเอกสาร เพื่อระบุว่าเวอร์ชันปัจจุบันแตกต่างจากเวอร์ชันที่ได้รับอนุมัติ
ทรัพยากร approvals มีออบเจ็กต์ Status ที่แสดงรายละเอียดสถานะ
การอนุมัติเมื่อมีการขอทรัพยากร นอกจากนี้ ยังมีออบเจ็กต์
ReviewerResponse ที่
แสดงรายละเอียดการตอบกลับการอนุมัติที่ผู้ตรวจสอบบางรายดำเนินการ คำตอบของแต่ละผู้ตรวจสอบจะแสดงด้วยออบเจ็กต์
Response
ทุกการดำเนินการในกระบวนการอนุมัติจะสร้างการแจ้งเตือนทางอีเมลซึ่งจะส่ง ไปยังผู้เริ่ม (ผู้ใช้ที่ขออนุมัติ) และผู้ตรวจสอบทั้งหมด นอกจากนี้ ระบบยัง เพิ่มลงในบันทึกกิจกรรมการอนุมัติด้วย
ผู้ตรวจสอบทุกคนต้องอนุมัติการอนุมัติ ผู้ตรวจสอบที่ปฏิเสธการอนุมัติจะตั้งค่าสถานะเสร็จสมบูรณ์เป็น DECLINED
หลังจากอนุมัติเสร็จสมบูรณ์ (สถานะเป็น APPROVED, CANCELLED หรือ
DECLINED) สถานะจะยังคงเป็น "เสร็จสมบูรณ์" และผู้เริ่มหรือผู้ตรวจสอบจะไม่สามารถโต้ตอบได้
คุณแสดงความคิดเห็นในการอนุมัติที่เสร็จสมบูรณ์ได้ตราบใดที่ไม่มีการอนุมัติไฟล์ที่มีสถานะเป็น IN_PROGRESS
วงจรการอนุมัติ
การอนุมัติจะผ่านสถานะต่างๆ หลายสถานะในวงจร รูปที่ 1 แสดง ขั้นตอนระดับสูงของวงจรการอนุมัติ
เริ่มการอนุมัติ โทรหา
startเพื่อเริ่มคำขออนุมัติ จากนั้นระบบจะตั้งค่าstatusเป็นIN_PROGRESSรอการอนุมัติ ขณะที่รอการอนุมัติ (
statusตั้งค่าเป็นIN_PROGRESS) ทั้งผู้เริ่มและผู้ตรวจสอบจะโต้ตอบกับคำขอได้ โดยผู้ใช้ สามารถเพิ่มcommentผู้เริ่ม สามารถreassignผู้ตรวจสอบ และผู้ตรวจสอบ อย่างน้อย 1 คนสามารถapproveคำขอการอนุมัติอยู่ในสถานะเสร็จสมบูรณ์ การอนุมัติจะเข้าสู่สถานะเสร็จสมบูรณ์ (
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 3339lockFile: บูลีนที่ระบุว่าจะล็อกไฟล์เมื่อเริ่มการอนุมัติหรือไม่ ซึ่งจะบล็อกไม่ให้ผู้ใช้แก้ไขไฟล์ในระหว่างกระบวนการอนุมัติ ผู้ใช้ที่มี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 ของแอป