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` リソースの v2
exportFormatsフィールドとimportFormatsフィールドは、許可されるインポートまたはエクスポート形式のリストです。aboutv3 では、サポートされているすべてのインポートまたはエクスポートに対するターゲットの MIME タイプのマップです。 - v2 の
appdataエイリアスとappfolderエイリアスは、v3 ではappDataFolderになりました。 propertiesリソースが v3 から削除されました。filesリソースには、実際の Key-Value ペアを含むpropertiesフィールド があります。propertiesフィールドには公開プロパティが含まれ、appPropertiesフィールドには非公開プロパティが含まれるため、visibility フィールドは必要ありません。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 では、フィールド名とパラメータ名が異なります。以下にいくつか例を示します。
filesリソースのtitleがnameプロパティに置き換えられました。- すべての日付と時刻のフィールドの接尾辞が
DateではなくTimeになりました。 - リスト オペレーションでは、結果セットを格納するために
itemsフィールドを使用しません。リソースタイプには、結果のフィールド(filesやchangesなど)が用意されています。