Android

Google Drive REST API v3 for Android完全ガイド

簡単にGoogle DriveにアクセスできたGoogle Drive Android APIがdeprecatedとなり、2019年12月6日には接続が出来なくなります

代わりにGoogle Drive REST APIへの変更が案内されています。

 

(https://developers.google.com/drive/android/deprecation)

 

この記事では、現在最新のGoogle Drive REST API v3 をAndroidに実装する手順を丁寧に解説していきます。

 

1. 開発コーンソールでGoogle Drive APIを有効化

Google開発コンソールにログインをして、Google Drive APIを有効化します。
まだプロジェクトが1つも無い場合は、作成してください。
https://console.developers.google.com



 

2. OAuthクライアントIDの作成

Google Driveにアクセスするためのアカウントを作成します。

左側のメニューから「認証情報」を選択し、「認証情報を作成」>「OAuthクライアントID」を選択。

アプリケーションの種類は「Android」、名前は任意、最後のパッケージ名は、AndroidManifest.xmlに記述しているパッケージ名を入れます。

「署名証明書フィンガープリント」は、デバッグ環境用に発行する場合は
~/.android/debug.keystore
のフィンガープリントを発行し、リリースのタイミングで、リリース用keystoreのフィンガープリントに差し替えてください。

ただ、この画面に書いてあるコマンドをそのまま打つと文字化けしたフィンガープリントが表示されるので、次のコマンドを打つようにします。

最後の -v を忘れるとSHA-256のフィンガープリントだけ表示される(必要なのはSHA-1)ので、忘れないように。

 

3. OAuth同意画面の作成

OAuthへの同意画面が無いと、ログインが100回に制限されるので作成します。


諸々入力しつつ、スクロールをしていって「スコープを追加」をクリック。

「../auth/drive」を探して、チェックを入れて、保存。

最後に一番下までスクロールして「ホームページ」と「プライバシーポリシー」のURLを記入して(必須)、「確認のため送信」をクリックすると、Googleの審査に入ります。

以上で、開発コンソールでの作業は完了です。

Googleの審査が終わるまでは、アプリが作ったファイルにしかアクセスできないのでご注意。

 

4. Androidの実装

depencencies

まず、Moduleレベルのbuild.gradleに関連ライブラリを記入します。

 

ログイン

ログアウト用にGoogleSignInClient変数、Google Drive操作用にDrive変数を定義しておきます。

 

ログイン処理はこんな感じです。

 

この処理が呼ばれると、Googleが用意してくれたログイン画面が表示されます。

ログイン処理が終わると、onActivityResultに返ってくるのでそこでハンドリングします。

ログインに失敗する場合は、前の方で説明した「2. OAuthクライアントIDの作成」のフィンガープリントを今の環境に合わせて生成しているか(本番? or テスト?)再確認すると良いかもしれません。

 

ログインに成功したら、Google Driveにアクセスするために、driveService: Driveを生成します。

以上で、下準備は完了です。

 

ログアウト

ログアウトは、ログインの処理で生成したgoogleSignInClientのメソッドを呼ぶだけです。

 

検索

検索は、独特のqueryを投げて行います。

 

検索条件を入れて絞り込みたい場合はsetQメソッドを使います。

 

その他、指定できるオプションはこちらの公式ドキュメントが参考になります。
https://developers.google.com/drive/api/v3/search-files

 

ファイルの取得

Google Driveから実際のファイルを取得する場合は、前述の「検索」で取得した「id (ファイルID)」を指定して取得します。

例はバイナリーファイルの場合なので、テキストファイルを取得したい場合は、BufferdInputStreamを、BufferdReaderに置き換えて処理をさせましょう。

 

ファイルの保存 / 更新

ファイルIDを指定して保存/更新をします。

ファイル名が同じでも、ファイルIDが違う場合は、新規保存されるので気をつけてください。

新しくファイルIDを生成したい場合は、後述の「ファイルIDの作成」を見てください。

 

ファイルIDの作成

新規にファイルを作成したい場合は、次の方法でファイルIDを生成します。

その後は、上記の「ファイルの保存 / 更新」を参照してください。

 

以上で、Googleアカウントのログインから、Google Driveの操作まで一通りが行えるはずです!

twitterでも毎日開発情報をつぶやいていますので、フォロー宜しくおねがいします。