LoginSignup
0
2

More than 5 years have passed since last update.

Google Drive API v2 から v3 への移行でつまづいたいくつかの点

Posted at

Google Drive API v2 から v3 への移行でつまづいたいくつかの点

Google Drive API .NET を使って v2 から v3 へアプリケーションを移行するのにつまづいた点をまとめました。

1 フィールド(プロパティ)の名前が変わった

 File オブジェクトのフィールド(プロパティ)が変わっています。一番影響を受けるのが、ファイルの名前で v2 では Title プロパティで取得していたのが v3 からは Name プロパティになります。ファイルの日時も ...Date から ...Time に変わりました。他にもあるかしれませんが、よく使いそうなところとしてはこんなところでしょうか。

2 ファイル情報(フィールド)の取得方法

 v2 ではファイル情報は全部返してきたかと思いますが、v3 では取得するものを指定しないと Nothing (C# では null) が返されます。取得項目は GetRequest の Fields プロパティにカンマ区切りテキストで指定します。このフィールド名は大文字小文字が正確でないとエラーになります。

Public Function GetFile(ByVal id As String) As Data.File
    Dim request As FilesResource.GetRequest = service.Files.Get(id)
    request.Fields = "name,id,parents,size,description,modifiedTime,mimeType,owners,fileExtension,spaces,webContentLink"
    Dim File As Data.File = request.Execute()
    Return file
End Function

3 ファイルの場所がトップレベル(Root)かの判別

 v2 では Parents コレクションの要素 (ParentRefernce 型) に IsRoot プロパティというのがあって簡単に判別できたのですが、v3 ではParents コレクションの要素は String 型(フォルダのId)に変わっています。
 この Id を使って File オブジェクトを取得するとファイルの場所がトップレベル(Root)でも有効な Id が取得されます。この Id から名前 (Name プロパティ) を取得すると "マイドライブ" (日本語版の場合)となります。
 したがって、ファイルの場所がトップレベルかどうかは、親のフォルダの Id を使って親の名前を取得し、それが"マイドライブ"であるかを確認するしかないようです。(どこかに IsRoot みたいのがあるかもしれませんが)

とりあえず、つまづいたところは現在のところ以上です。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2