Google Drive API の最新バージョンは v3 です。検索ではフィールドのサブセットのみが返されるため、v3 のパフォーマンスは向上します。v2 コレクションが必要でない限り、現在のバージョンを使用してください。v2 を使用している場合は、v3 への移行を検討してください。移行するには、Migrate to Drive API v3 をご覧ください。バージョンの違いの一覧については、Drive API v2 と v3 の比較リファレンスをご覧ください。
引き続き v2 を使用する場合は、Drive API v2 ガイドの修正を参照し、v3 ガイドの手順を v2 デベロッパー向けに修正する必要がある方法をご確認ください。
Drive API v3 の改善点について詳しくは、Google のエンジニアが新しい API 設計について説明している次の動画をご覧ください。
V3 の改善点
v3 では、パフォーマンスを最適化し、API の動作の複雑さを軽減するために、以前のバージョンの 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
値を返します。- update メソッドで、書き込み不可のフィールドを指定するリクエストが拒否されるようになりました。
about
リソースの v2 のexportFormats
フィールドとimportFormats
フィールドは、使用可能なインポート形式またはエクスポート形式のリストです。v3 では、これらはサポートされているすべてのインポートまたはエクスポートに対する可能なターゲットの 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 で異なります。次にその例を紹介します。
name
プロパティは、files
リソースのtitle
に代わるものです。- すべての日付と時刻フィールドの接尾辞として、
Date
ではなくTime
を使用します。 - リスト オペレーションでは、結果セットを格納するために
items
フィールドを使用しません。リソースタイプには、結果のフィールド(files
やchanges
など)があります。