このガイドでは、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/
を付加してリソース名としてフォーマットする必要があります。
「グループ化」は「統合」と呼ばれるようになり、source
と userId
のリクエスト パラメータは削除されました。
また、新しい [フィルタ] オプションを使用して、レスポンスで返されるアクティビティ データの種類を制限することもできます。
アクション
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
フィールド personName
を people.get
メソッドに渡すことで、People API からクエリを実行できます。
ターゲット
v1 API では、ターゲットは常にドライブのアイテムでした。v2 API では、ドライブ内の他のタイプのオブジェクトをターゲットにできます。たとえば、ドライブに対する変更のターゲット タイプは Drive
です。共有ドライブのルートフォルダは(root
フィールドに DriveItem
として)返されますが、アクティビティの直接のターゲットではありません。同様の概念が FileComment
リソースにも適用されます。この parent
フィールドは、対象のコメント スレッドを含むドライブのアイテムを参照します。
アクティビティの統合
v1 API では、統合(「グループ化」)戦略の設定時にレスポンスのスタイルが変更されていました。具体的には、統合が有効になっている場合、各アクティビティには構成要素 singleEvents
と、それらの構成要素イベント間の共通のアクティビティを要約する combinedEvent
が含まれていました。統合がオフの場合、combinedEvent
フィールドに各アクティビティの元の統合されていないイベントが含まれていました。これらのイベントは、作成と共有など、複数のアクションを表すことができます。
v2 API では、返される DriveActivity
には常にアクター、ターゲット、アクションの完全なセットが含まれているため、統合戦略によってレスポンスのスタイルが変わることはありません。