이 문서에서는 Google Drive API에서 승인을 관리하는 방법을 설명합니다.
사용자는 정식 승인 절차를 통해 Google Drive에서 문서를 전송하며, 이 절차를 사용하여 게시 전에 계약 검토 또는 공식 문서에 대한 승인을 받을 수 있습니다. 승인은 검토 상태(예: 진행 중, 승인됨 또는 거부됨)와 관련된 검토자를 모두 추적합니다. 승인은 콘텐츠를 검증하고 검토자 기록을 보관하는 데 유용한 방법입니다.
Drive에서 콘텐츠 승인을 만들고 관리할 수 있습니다. Google Drive API는 파일 승인과 함께 작동하는 approvals 리소스를 제공합니다. approvals 리소스의 메서드는 Drive, Google Docs 및 기타 Google Workspace 편집기 내의 항목에서 작동합니다. 검토자는 문서를 직접 승인, 거부하거나 의견을 남길 수 있습니다.
시작하기 전에
파일에
canStartApproval기능이 포함되어 있어야 합니다 . 파일 기능을 확인하려면get메서드를files리소스에서fileId경로 매개변수를 사용하여 호출하고fields매개변수에서canStartApproval기능 필드를 사용합니다. 자세한 내용은 파일 기능 이해를 참고하세요.불리언
canStartApproval기능은 다음과 같은 경우false입니다.- 관리자 설정이 기능에 대한 액세스를 제한합니다.
- Google Workspace 버전이 적합하지 않습니다.
- 파일 소유자가 도메인 외부 사용자입니다.
- 사용자에게 파일에 대한
role=writer권한이 없습니다.
검토자와 대상 파일을 수동으로 공유해야 합니다. Drive는 이 작업을 자동으로 실행하지 않습니다. 검토자에게 파일 액세스 권한이 없으면 승인 요청은 성공하지만 검토자는 알림을 받거나 파일을 볼 수 없습니다.
개념
다음 주요 개념은 승인의 기초를 형성합니다.
승인 상태
문서 승인을 요청하면 승인 절차를 통해 모든 검토자가 동일한 버전의 콘텐츠를 승인합니다. 검토자가 요청을 승인한 후 요청이 완료되기 전에 파일이 수정되면 검토자의 승인이 재설정되고 검토자는 새 버전을 승인해야 합니다. 최종 승인 후 콘텐츠가 수정되면 현재 버전이 승인된 버전과 다르다는 배너가 문서에 표시됩니다.
approvals 리소스에는 리소스가 요청될 때 승인 상태를 자세히 설명하는
Status 객체가 포함되어 있습니다. 또한 특정 검토자가 승인한 응답을 자세히 설명하는
ReviewerResponse 객체도 포함되어 있습니다. 각 검토자의
응답은
Response 객체로 표시됩니다.
승인 절차의 모든 작업은 승인 요청자인 개시자와 모든 검토자에게 전송되는 이메일 알림을 생성합니다. 승인 활동 로그에도 추가됩니다.
모든 검토자가 승인을 승인해야 합니다. 승인을 거부하는 검토자는 완료된 상태를 DECLINED로 설정합니다.
승인이 완료되면 (상태가 APPROVED, CANCELLED 또는 DECLINED임) 완료된 상태로 유지되며 개시자 또는 검토자가 상호작용할 수 없습니다. 상태가 IN_PROGRESS인 파일에 기존 승인이 없는 한 완료된 승인에 의견을 추가할 수 있습니다.
승인 수명 주기
승인은 수명 주기 동안 여러 상태를 거칩니다. 그림 1은 승인 수명 주기의 대략적인 단계를 보여줍니다.
승인 시작.
start를 호출하여 승인 요청을 시작합니다. 그러면status가IN_PROGRESS로 설정됩니다.승인 대기 중. 승인이 대기 중인 동안 (
status가IN_PROGRESS로 설정됨) 개시자와 검토자 모두 승인과 상호작용할 수 있습니다. `comment`를 추가할 수 있고, 개시자는 검토자를 `reassign`할 수 있으며, 하나 이상의 검토자가 요청을 `approve`할 수 있습니다.commentreassignapprove승인이 완료된 상태임. 모든 검토자가 요청을 승인하거나, 개시자가 요청을
cancel하도록 선택하거나, 검토자가 요청을decline하도록 선택하면 승인이 완료된 상태 (status가APPROVED,CANCELLED또는DECLINED로 설정됨)로 전환됩니다.
fields 매개변수 사용
응답에서 반환할 필드를 지정하려면
fields system
parameter
를 사용하여 approvals 리소스의 메서드를 설정하면 됩니다. fields 매개변수를 생략하면 서버는 메서드에 특정한 기본 필드 집합을 반환합니다. 다른 필드를 반환하려면 특정 필드 반환을 참고하세요.
승인 시작 및 관리
approvals 리소스는 Drive API를 사용하여 승인을 시작
하고 관리하는 데 사용할 수 있습니다. 이러한 메서드는 파일 메타데이터 작성을 허용하는 기존 OAuth 2.0 Drive API 범위와 함께 작동합니다. 자세한 내용은 Google Drive API 범위 선택하기를 참고하세요.
승인 시작
파일에 새 승인을 시작하려면
start 리소스에서 approvals 메서드를 사용하고 fileId 경로 매개변수를 포함합니다.
요청 본문은 파일을 검토하도록 할당된 검토자의 이메일 주소를 포함하는 문자열 배열인 필수 reviewerEmails 필드로 구성됩니다. 각 검토자 이메일 주소는 Google 계정과 연결되어 있어야 하며, 그렇지 않으면 요청이 실패합니다.
또한 세 가지 선택적 필드가 제공됩니다.
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: 승인이 있는 파일의 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: 승인이 있는 파일의 ID입니다.
- APPROVAL_ID: 승인 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
의 반복 객체가 있으며, 각 객체에는 추가할 검토자 1명 또는 교체할 검토자 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: 승인이 있는 파일의 ID입니다.
- APPROVAL_ID: 승인 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: 승인이 있는 파일의 ID입니다.
- APPROVAL_ID: 승인 ID입니다.
- ACCESS_TOKEN: 앱의 OAuth 2.0 토큰입니다.
승인 거부
승인을 거부하려면
decline 리소스에서 approvals 메서드를 사용하고 fileId 및 approvalId
경로 매개변수를 포함합니다.
decline 메서드는 승인 Status가 IN_PROGRESS인 동안에만 호출할 수 있습니다.
요청 본문은 승인 거부와 함께 제공되는 메시지를 포함하는 문자열인 선택적 message 필드로 구성됩니다.
응답 본문에는 approvals 리소스의 인스턴스가 포함됩니다. 메시지는 알림으로 전송되며 승인 활동 로그에도 포함됩니다.
요청 사용자의 ReviewerResponse
객체의 response
필드가 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: 승인이 있는 파일의 ID입니다.
- APPROVAL_ID: 승인 ID입니다.
- ACCESS_TOKEN: 앱의 OAuth 2.0 토큰입니다.
승인 승인
승인을 승인하려면
approve 메서드를 approvals 리소스에서 사용하고 fileId 및 approvalId
경로 매개변수를 포함합니다.
approve 메서드는 승인 Status가 IN_PROGRESS인 동안에만 호출할 수 있습니다.
요청 본문은 승인과 함께 제공되는 메시지를 포함하는 문자열인 선택적 message 필드로 구성됩니다.
응답 본문에는 approvals 리소스의 인스턴스가 포함됩니다. 메시지는 알림으로 전송되며 승인 활동 로그에도 포함됩니다.
요청 사용자의 ReviewerResponse
객체의 response
필드가 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: 승인이 있는 파일의 ID입니다.
- APPROVAL_ID: 승인 ID입니다.
- ACCESS_TOKEN: 앱의 OAuth 2.0 토큰입니다.
기존 승인 찾기
approvals 리소스는 Drive API를 사용하여 승인 상태를 가져오고
나열하는 데에도 사용할 수 있습니다.
파일의 승인을 보려면 파일의 메타데이터를 읽을 권한이 있어야 합니다. 자세한 내용은 역할 및 권한을 참고하세요.
승인 받기
파일에 대한 승인을 받으려면 get
메서드를 approvals 리소스에서 fileId 및 approvalId 경로
매개변수와 함께 사용합니다. 승인 ID를 모르는 경우 승인
을 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: 승인이 있는 파일의 ID입니다.
- APPROVAL_ID: 승인 ID입니다.
- ACCESS_TOKEN: 앱의 OAuth 2.0 토큰입니다.
승인 나열
파일의 승인을 나열하려면 list 리소스approvals에서 메서드를 호출하고 fileId 경로 매개변수를 포함합니다.
응답 본문은 파일의 승인 목록으로 구성됩니다. items
필드에는 approvals
리소스 형식으로 각 승인에 대한 정보가 포함됩니다.
다음 쿼리 매개변수를 전달하여 승인의 페이지 나누기를 맞춤설정하거나 승인을 필터링할 수도 있습니다.
pageSize: 페이지당 반환할 최대 승인 수입니다.pageSize를 설정하지 않으면 서버는 최대 100개의 승인을 반환합니다.pageToken: 이전 목록 호출에서 받은 페이지 토큰입니다. 이 토큰은 후속 페이지를 가져오는 데 사용됩니다. 이전 응답의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: 승인이 있는 파일의 ID입니다.
- ACCESS_TOKEN: 앱의 OAuth 2.0 토큰입니다.