Drive Activity API v1 から移行する

このガイドでは、Google Drive Activity API v1 と v2 の違いと、v2 API をサポートするように v1 アプリケーションを変更する方法について説明します。

承認

v1 API では次のスコープが使用されました。

  • https://www.googleapis.com/auth/activity

v2 API には、次のいずれかのスコープが必要です。

  • https://www.googleapis.com/auth/drive.activity
  • https://www.googleapis.com/auth/drive.activity.readonly

リソース名

v1 API では、Google ドライブのアイテムやユーザーなどのオブジェクトの識別子は不透明な文字列でした。v2 API では、これらのオブジェクトは通常、リソース名を使用して参照されます。詳細については、Cloud API 設計ガイドをご覧ください。

通常、これらの識別子は変換できます。たとえば、v2 API のドライブのアイテムは、リソース名 items/ITEM_ID_V1 を使用して参照されます。

Requests

v2 のリクエスト形式は v1 と同様です。具体的には、ドライブ ファイルやドライブの祖先に対するアクティビティは引き続きリクエストできますが、これらのリクエスト パラメータは、接頭辞 items/ を付加してリソース名としてフォーマットする必要があります。

「グループ化」は「統合」と呼ばれるようになり、sourceuserId のリクエスト パラメータは削除されました。

また、新しい [フィルタ] オプションを使用して、レスポンスで返されるアクティビティ データの種類を制限することもできます。

アクション

v1 API では、アクティビティ タイプとそのアクティビティに関連付けられたデータは、別々のフィールドにありました。たとえば、primaryEventType フィールドに値 move が含まれている場合、アプリは、トップレベルの move フィールドに、追加または削除された親が入力されていると見なします。

v2 API では、これらのフィールドは区別されません。ActionDetail メッセージには、1 つのフィールドが設定されています。アクション タイプを示し、そのアクションに関連付けられた詳細情報が含まれます。たとえば、ムーブを表す ActionDetail では move フィールドのみが設定され、このフィールドには追加および削除された親がリストされます。

v1 API の primaryEventType フィールドは、v2 の primaryActionDetail とほぼ同じです。

Actors

v1 API では、返されたアクティビティには、アクターが既知のユーザーであれば User が含まれ、特別なケースでは必要に応じて fromUserDeletion などのトップレベル フィールドが含まれていました。

v2 API では、より豊富な Actor タイプのセットが使用可能で、アクターが既知のユーザーである場合に user.knownUser に値が設定されます。アプリケーションでユーザーに関する詳細情報が必要な場合は、KnownUser フィールド personNamepeople.get メソッドに渡すことで、People API からクエリを実行できます。

ターゲット

v1 API では、ターゲットは常にドライブのアイテムでした。v2 API では、ドライブ内の他のタイプのオブジェクトをターゲットにできます。たとえば、ドライブに対する変更のターゲット タイプは Drive です。共有ドライブのルートフォルダは(root フィールドに DriveItem として)返されますが、アクティビティの直接のターゲットではありません。同様の概念が FileComment リソースにも適用されます。この parent フィールドは、対象のコメント スレッドを含むドライブのアイテムを参照します。

アクティビティの統合

v1 API では、統合(「グループ化」)戦略の設定時にレスポンスのスタイルが変更されていました。具体的には、統合が有効になっている場合、各アクティビティには構成要素 singleEvents と、それらの構成要素イベント間の共通のアクティビティを要約する combinedEvent が含まれていました。統合がオフの場合、combinedEvent フィールドに各アクティビティの元の統合されていないイベントが含まれていました。これらのイベントは、作成と共有など、複数のアクションを表すことができます。

v2 API では、返される DriveActivity には常にアクター、ターゲット、アクションの完全なセットが含まれているため、統合戦略によってレスポンスのスタイルが変わることはありません。