Drive Activity API 데이터 모델

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

객체

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

  • TimestampTimeRange: 각각 활동이 발생한 특정 시점 또는 일정 기간 동안 활동이 발생한 시작과 종료를 나타냅니다.

  • Actor: 일반적으로 Actor는 최종 사용자입니다. 그러나 관리자가 사용자 또는 본인으로서 작업하거나 알 수 없는 사용자가 작업하는 경우 시스템 이벤트가 Action를 트리거할 수 있습니다. Actor 메시지는 이러한 각 사례를 캡슐화합니다.

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

  • Action: 각 DriveActivity 리소스에는 하나 이상의 관련 작업이 있습니다. Action는 작업에 관한 자세한 유형 및 정보뿐만 아니라 Actor, Target, Timestamp 또는 TimeRange도 포함하는 이벤트와 같이 독립형입니다. 중복을 방지하기 위해 Action는 전체 DriveActivity와 동일한 경우 자체 Target, Actor 또는 시간 필드를 채우지 않습니다.

  • 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: Drive 항목의 ID입니다.
  • TITLE: Drive 항목의 제목입니다.

이 응답의 Action에는 Actor, Target 또는 TimeStamp가 포함되지 않습니다. 전체 DriveActivity와 동일하기 때문입니다.

두 사용자가 비슷한 시점에 동일한 파일을 수정했습니다.

통합을 사용 설정하면 관련 작업이 하나의 DriveActivity로 그룹화됩니다. 이 예에서는 유사한 작업 2개가 그룹화되어 있습니다. 두 명의 서로 다른 사용자가 수행한 Edit 작업 유형 1개입니다.

"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: Drive 항목의 ID입니다.
  • TITLE: Drive 항목의 제목입니다.

이 응답의 작업에는 Target가 포함되지 않습니다. 전체 DriveActivity와 동일하기 때문입니다.

또한 이 예에서는 앱이 개별 작업을 확인하지 않고 DriveActivity의 요약 정보만 사용하는 방법을 보여줍니다. 응답은 두 사용자가 일정 기간 동안 특정 파일을 수정했음을 나타냅니다.

사용자가 2개의 파일을 새 디렉터리로 이동했습니다.

이 예에서는 파일이 동일한 소스에서 동일한 대상으로 동시에 이동되었기 때문에 통합 전략에서 관련된 Move 작업 2개를 그룹화했습니다.

"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: 첫 번째 Drive 항목의 ID입니다.
  • ITEM_ID_2: 두 번째 Drive 항목의 ID입니다.
  • TITLE_1: 첫 번째 Drive 항목의 제목입니다.
  • TITLE_2: 두 번째 Drive 항목의 제목입니다.

이 응답의 작업에는 Actor 또는 TimeStamp가 포함되지 않습니다. 전체 DriveActivity와 동일하기 때문입니다.