最新の Google Drive API バージョンは v3 です。v3 では、検索で返されるのはフィールドのサブセットのみであるため、パフォーマンスが向上しています。v2 コレクションが必要な場合を除き、現在のバージョンを使用します。v2 を使用している場合は、v3 への移行を検討してください。移行するには、Drive API v3 への移行をご覧ください。バージョンの違いの完全なリストについては、Drive API v2 と v3 の比較リファレンスをご覧ください。
v2 を引き続き使用する場合は、Drive API v2 のガイドの修正版を参照してください。v3 ガイドの一部の手順を v2 デベロッパー向けに修正する方法が記載されています。
Drive API v3 の改善点について詳しくは、Google のエンジニアが新しい API 設計について説明している次の動画をご覧ください。
V3 の改善
パフォーマンスを最適化し、API 動作の複雑さを軽減するため、v3 では以前の API バージョンに対して次の改善が行われています。
- ファイルと共有ドライブの検索では、デフォルトで完全なリソースは返されず、一般的に使用されるフィールドのサブセットのみが返されます。
fields
の詳細については、files.list
メソッドとdrives.list
メソッドをご覧ください。 - レスポンスを返すほとんどのメソッドで、
fields
パラメータが必要になりました。fields
が必要なすべてのメソッドの一覧については、 Drive API リファレンスをご覧ください。 - 重複する機能を持つリソースが削除されました。例:
files.list
メソッドはChildren
コレクションとParents
コレクションと同じ機能を果たすため、v3 から削除されました。Realtime.*
メソッドを削除しました。
- デフォルトでは、アプリデータは検索結果に表示されません。v2 では、
drive.appdata
スコープを設定でき、files.list
メソッドとchanges.list
メソッドからアプリケーション データが返されますが、パフォーマンスが低下します。v3 では、drive.appdata
スコープを設定し、クエリ パラメータspaces=appDataFolder
を設定してアプリケーション データをリクエストします。 - すべての更新オペレーションで PUT ではなく PATCH を使用します。
- Google ドキュメントをエクスポートするには、
files.export
メソッドを使用します。 changes.list
メソッドの動作は異なります。変更 ID の代わりに、不透明なページトークンを使用します。変更コレクションをポーリングするには、まずchanges.getStartPageToken
メソッドを呼び出して初期値を取得します。後続のクエリでは、changes.list
メソッドはnewStartPageToken
値を返します。- 更新メソッドが、書き込み不可のフィールドを指定するリクエストを拒否するようになりました。
about
リソースの v2exportFormats
フィールドとimportFormats
フィールドは、許可されるインポートまたはエクスポート形式のリストです。v3 では、可能なターゲットとサポートされているすべてのインポートまたはエクスポートの MIME タイプのマップです。- v2 の
appdata
エイリアスとappfolder
エイリアスは、v3 ではappDataFolder
になりました。 properties
リソースは v3 から削除されます。files
リソースには、true の Key-Value ペアを含むproperties
フィールドがあります。properties
フィールドには公開プロパティが含まれ、appProperties
フィールドには非公開プロパティが含まれるため、可視性フィールドは必要ありません。files
リソースのmodifiedTime
フィールドは、ファイルが最後に変更された日時を更新します。v2 では、setModifiedDate
フィールドを設定した場合にのみ、更新時にmodifiedDate
フィールドを変更できました。files
リソースのviewedByMeTime
フィールドは自動的に更新されません。- Google ドキュメントの形式をインポートするには、リソース本文で適切なターゲット
mimeType
を設定します。v2 では、?convert=true
を設定します。 - 形式がサポートされていない場合、インポート オペレーションは 400 エラーを返します。
- 閲覧者とコメント投稿者は権限を表示できません。
- 権限の
me
エイリアスが削除されました。 - 一部の機能はリクエスト リソースの一部として利用可能でしたが、リクエスト パラメータとして利用可能になりました。例:
- v2 では、
children.delete
を使用して、親フォルダから子ファイルを削除できます。 - v3 では、URL に
?removeParents=parent_id
を含む子にfiles.update
を使用します。
- v2 では、
その他の相違点
v3 では、フィールド名とパラメータ名が異なります。以下にいくつか例を示します。
name
プロパティは、files
リソースのtitle
に代わるものです。Time
は、Date
ではなく、すべての日付と時刻のフィールドの接尾辞です。- リスト オペレーションでは、結果セットを格納するために
items
フィールドを使用しません。リソースタイプには、結果のフィールド(files
やchanges
など)が用意されています。