Drive Activity API データモデル

このガイドでは、Google Drive Activity API のレスポンスを構成する主なコンポーネントについて説明します。 例と解釈方法を紹介します

オブジェクト

  • DriveActivity - Drive Activity API へのクエリによって返されるプライマリ リソース。これは、 1 つまたは複数の行為者が 1 つまたは複数の行動に影響を与える 1 つまたは ターゲットの数が増えます

  • Timestamp および TimeRange - これらの アクティビティの特定の時点か、 または、一定の期間にわたってアクティビティが発生した時刻の開始と終了 あります。

  • Actor - 通常、Actor は 必要ありません。ただし、場合によっては、システム イベントによって Action(管理者が管理者ロールの場合) または特定できない人物によって行われた場合。「 Actor メッセージは、これらの各ケースをカプセル化します。

  • Target - Target はオブジェクトです。 アクティビティ(ファイル、フォルダ、共有ドライブ、ファイルのコメントなど)のクイック リファレンスが表示されます。 多くのアクション タイプで、複数の種類のターゲットがサポートされています。対象 Edit は通常、ドライブのファイルに、その他の Google ドライブのファイルに適用されるため、 RenameCreate などのアクションはドライブにも適用できます フォルダと共有ドライブです。ドライブのアイテムではないターゲット その場合でも、ドライブのルートフォルダや親のフォルダなど、 コメントを記述しています。

  • Action - DriveActivity ごと リソースに 1 つ以上の関連アクションがあります。Action は自己完結型であり、 たとえば event です。ここでは、詳細なタイプと情報だけでなく、 ActorTargetTimestamp があります。 または TimeRange。冗長性を避けるため、Action は自身の入力を行いません。 TargetActor、または時間フィールドが全体値と同じである場合は、 DriveActivity

  • ActionDetail - Action に関する特定のタイプと詳細情報が表示されます。たとえば、 Move アクションの詳細には、送信元と宛先のロケーション、および PermissionChange は、ドキュメントにアクセスできるユーザーと、その権限を指定します できます。

回答例

ユーザーがドライブ内のファイルを編集しました。

単純な DriveActivity リソースには、ユーザーなどのアクションが 1 つだけ含まれることがあります。 編集することはできません。

"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 には、ActorTarget、 または TimeStamp になります。これは、DriveActivity 全体と同じであるためです。

2 人のユーザーが同じファイルをほぼ同時に編集しました。

統合を有効にすると、関連するアクションが 1 つにグループ化されます DriveActivity。この例では、2 つの類似したアクションがグループ化されています(1 つの Edit)。 異なる 2 人のユーザーによるアクション タイプです。

"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。また、kubectl の「get」コマンドや People API を使用すると、詳細情報を取得できます。
  • ACCOUNT_ID_2: 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: 2 番目のドライブのアイテムの ID。
  • TITLE_1: ドライブの最初のアイテムのタイトル。
  • TITLE_2: ドライブの 2 番目のアイテムのタイトル。

このレスポンスのアクションには ActorTimeStamp は含まれません。 DriveActivity 全体と同じであるためです。