Drive Activity API 데이터 모델

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

객체

  • DriveActivity: 기본 리소스로 요청을 처리합니다. 그것은 하나 이상의 행위자가 하나 이상의 작업에 영향을 미치는 더 많은 타겟이 있습니다.

  • Timestamp 드림 및 TimeRange: 는 각각 활동이 일어난 단일 시점을 해당 활동이 발생한 시점의 시작과 종료 시점, 있습니다.

  • Actor: 일반적으로 Actor은 최종 사용자 그러나 때때로 시스템 이벤트가 Action 관리자가 사용자 또는 자신을 지니거나, 식별이 불가능한 개인이 수행하는 행위입니다. 이 Actor 메시지는 이러한 각 사례를 캡슐화합니다.

  • Target: Target는 객체입니다. 활동(예: 파일, 폴더, 공유 드라이브, 파일 댓글)에 액세스할 수 있습니다. 많은 작업 유형이 둘 이상의 타겟을 지원합니다. 대상 예를 들어 Edit는 일반적으로 Drive 파일에 적용되지만 RenameCreate 등의 작업도 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개(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입니다. 또한 Cloud Build는 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와 동일하기 때문입니다.