Drive Activity API 데이터 모델

이 가이드에서는 Google Drive Activity API 응답의 기본 구성요소를 설명하고 예시와 이를 해석하는 방법을 보여줍니다.

객체

  • DriveActivity - Drive Activity API에 대한 쿼리에서 반환되는 기본 리소스입니다. 하나 이상의 대상에 영향을 미치는 하나 이상의 작업을 수행하는 하나 이상의 행위자를 설명합니다.

  • TimestampTimeRange: 각각 활동이 발생한 단일 시점 또는 일정 기간에 걸쳐 활동이 발생한 시점의 시작과 끝을 나타냅니다.

  • Actor - 일반적으로 Actor는 최종 사용자입니다. 그러나 관리자가 사용자나 그 자체로 또는 식별할 수 없는 사람이 실행할 때 시스템 이벤트가 Action를 트리거할 수 있습니다. Actor 메시지는 이러한 각 사례를 캡슐화합니다.

  • TargetTarget는 파일, 폴더, 공유 드라이브 또는 파일 댓글과 같은 활동의 객체입니다. 많은 작업 유형이 둘 이상의 타겟을 지원합니다. 예를 들어 Edit는 일반적으로 Drive 파일에 적용되지만 RenameCreate와 같은 다른 작업도 Drive 폴더 및 공유 드라이브에 적용할 수 있습니다. Drive 항목이 아닌 대상은 여전히 드라이브의 루트 폴더 또는 파일 주석이 포함된 상위 문서와 같은 항목을 참조할 수 있습니다.

  • Action - 각 DriveActivity 리소스에는 관련된 작업이 하나 이상 있습니다. Action는 작업에 관한 자세한 유형과 정보뿐만 아니라 Actor, TargetTimestamp 또는 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와 동일하기 때문입니다.