이 가이드에서는 Google Drive Activity API 응답의 기본 구성요소를 설명하고 예시와 이를 해석하는 방법을 보여줍니다.
객체
DriveActivity
- Drive Activity API에 대한 쿼리에서 반환되는 기본 리소스입니다. 하나 이상의 대상에 영향을 미치는 하나 이상의 작업을 수행하는 하나 이상의 행위자를 설명합니다.Timestamp
및TimeRange
: 각각 활동이 발생한 단일 시점 또는 일정 기간에 걸쳐 활동이 발생한 시점의 시작과 끝을 나타냅니다.Actor
- 일반적으로Actor
는 최종 사용자입니다. 그러나 관리자가 사용자나 그 자체로 또는 식별할 수 없는 사람이 실행할 때 시스템 이벤트가Action
를 트리거할 수 있습니다.Actor
메시지는 이러한 각 사례를 캡슐화합니다.Target
—Target
는 파일, 폴더, 공유 드라이브 또는 파일 댓글과 같은 활동의 객체입니다. 많은 작업 유형이 둘 이상의 타겟을 지원합니다. 예를 들어Edit
는 일반적으로 Drive 파일에 적용되지만Rename
및Create
와 같은 다른 작업도 Drive 폴더 및 공유 드라이브에 적용할 수 있습니다. Drive 항목이 아닌 대상은 여전히 드라이브의 루트 폴더 또는 파일 주석이 포함된 상위 문서와 같은 항목을 참조할 수 있습니다.Action
- 각DriveActivity
리소스에는 관련된 작업이 하나 이상 있습니다.Action
는 작업에 관한 자세한 유형과 정보뿐만 아니라Actor
,Target
및Timestamp
또는TimeRange
로 구성된다는 점에서 이벤트와 같이 독립적입니다. 중복을 피하기 위해Action
는 자체Target
,Actor
또는 시간 필드가 전체DriveActivity
와 동일할 때 자체 필드를 채우지 않습니다.ActionDetail
-Action
에 관한 특정 유형 및 세부정보입니다. 예를 들어Move
작업 세부정보에는 소스와 대상 위치가 있고PermissionChange
은 이제 문서에 액세스할 수 있는 사용자와 어떤 권한을 가지고 있는지 지정합니다.
응답 예시
사용자가 Drive에서 파일을 수정함:
간단한 DriveActivity
리소스에는 사용자가 하나의 파일을 수정하는 등의 하나의 작업만 포함될 수 있습니다.
"activities":[{
"primary_action_detail":{ "edit":{} },
"actors":[ { "user":{ "known_user":{ "person_name":"people/ACCOUNT_ID" } } } ],
"targets":[ { "drive_item":{ "name":"items/ITEM_ID", "title":"TITLE", "file":{} } } ],
"timestamp":{ "seconds":"1536794657", "nanos":791000000 },
"actions":[ { "detail":{ "edit":{} } } ]
}]
이 출력에는 다음 값이 포함됩니다.
- ACCOUNT_ID: 사용자의 ID입니다. 이 기능을 People API와 함께 사용하여 자세한 정보를 얻을 수 있습니다.
- ITEM_ID: 드라이브 항목의 ID입니다.
- TITLE: 드라이브 항목의 제목입니다.
이 응답의 Action
에는 Actor
, Target
또는 TimeStamp
가 포함되지 않습니다. 전체 DriveActivity
와 동일하기 때문입니다.
두 사용자가 비슷한 시간에 같은 파일을 수정했습니다.
통합이 사용 설정되면 관련 작업이 하나의 DriveActivity
로 그룹화됩니다. 이 예시에서는 유사한 작업 2개가 그룹화되어 있습니다. 서로 다른 사용자 2명의 Edit
작업 유형 하나가 포함되어 있습니다.
"activities":[{
"primary_action_detail":{ "edit":{} },
"actors":[
{ "user":{ "known_user":{ "person_name":"people/ACCOUNT_ID_1" } } },
{ "user":{ "known_user":{ "person_name":"people/ACCOUNT_ID_2" } } }
],
"targets":[
{ "drive_item":{ "name":"items/ITEM_ID", "title":"TITLE", "file":{} } }
],
"time_range":{
"start_time":{ "seconds":"1541089823", "nanos":712000000 },
"end_time":{ "seconds":"1541089830", "nanos":830000000 }
},
"actions":[
{
"detail":{ "edit":{} },
"actor":{ "user":{ "known_user":{ "person_name":"people/ACCOUNT_ID_1" } } },
"timestamp":{ "seconds":"1541089830", "nanos":830000000 }
},
{
"detail":{ "edit":{} },
"actor":{ "user":{ "known_user":{ "person_name":"people/ACCOUNT_ID_2" } } },
"timestamp":{ "seconds":"1541089823", "nanos":712000000 }
}
]
}]
이 출력에는 다음 값이 포함됩니다.
- ACCOUNT_ID_1: 첫 번째 사용자의 ID입니다. 이 기능을 People API와 함께 사용하여 자세한 정보를 얻을 수 있습니다.
- ACCOUNT_ID_2: 두 번째 사용자의 ID입니다.
- ITEM_ID: 드라이브 항목의 ID입니다.
- TITLE: 드라이브 항목의 제목입니다.
이 응답의 작업에는 Target
가 포함되지 않습니다. 전체 DriveActivity
와 동일하기 때문입니다.
또한 이 예는 앱이 개별 작업을 보지 않고 DriveActivity
의 요약 정보만 사용할 수 있는 방법을 보여줍니다. 응답은 2명의 사용자가 특정 파일을 일정 기간 동안 수정했음을 나타냅니다.
사용자가 파일 2개를 새 디렉터리로 이동했습니다.
이 예에서 통합 전략은 파일이 동일한 소스에서 같은 대상으로 동시에 이동되었기 때문에 2개의 관련 Move
작업을 그룹화했습니다.
"activities":[{
"primary_action_detail":{
"move":{
"added_parents":[ { ... } ]
"removed_parents":[ { ... } ]
}
},
"actors":[ { "user":{ "known_user":{ "person_name":"people/ACCOUNT_ID" } } } ],
"targets":[
{ "drive_item":{ "name":"items/ITEM_ID_1", "title":"TITLE_1", "file":{} } },
{ "drive_item":{ "name":"items/ITEM_ID_2", "title":"* TITLE_2", "file":{} } }
],
"timestamp":{ "seconds":"1541090960", "nanos":985000000 },
"actions":[
{
"detail":{ "move":{ "added_parents":[ { ... } ] "removed_parents":[ { ... } ] } },
"target":{ "drive_item":{ "name":"items/ITEM_ID_1", "title":"TITLE_1", "file":{} } }
},
{
"detail":{ "move":{ "added_parents":[ { ... } ] "removed_parents":[ { ... } ] } },
"target":{ "drive_item":{ "name":"items/ITEM_ID_2", "title":"* TITLE_2", "file":{} } }
}
]
}]
이 출력에는 다음 값이 포함됩니다.
- ACCOUNT_ID: 사용자의 ID입니다. 이 기능을 People API와 함께 사용하여 자세한 정보를 얻을 수 있습니다.
- ITEM_ID_1: 첫 번째 드라이브 항목의 ID입니다.
- ITEM_ID_2: 두 번째 드라이브 항목의 ID입니다.
- TITLE_1: 첫 번째 드라이브 항목의 제목입니다.
- TITLE_2: 두 번째 드라이브 항목의 제목입니다.
이 응답의 작업에는 Actor
또는 TimeStamp
가 포함되지 않습니다. 전체 DriveActivity
와 동일하기 때문입니다.