Kasasagi’s memorandum

JavaとかProcessingとか。最近はAtcoderとか。

GoogleDriveのAPIのテスト

こんばんは、かささぎです。好きな素数は13です。

 

授業の自由課題でソフトウェア開発を行うというものがあり、GoogleDriveとやり取りをするアプリケーションを作成することにしました。

 

Googleデベロッパーツールを使ったことはなく、難しそうだったので、授業の前に簡単(ではなかった)な機能を実装することにしました。ローカル環境にあるテキストファイルをドライブにアップロードするというものです。Drive REST APIというものを利用しました。

 

IDEeclipseを「ださい」の一言で切り捨てるタイプの人間なので、Intellij Ideaを利用しました。学生は有償版を無料で利用できるのでおすすめです。まあ自分はjavaにしか使わないんで無料版ですが。。。

 

開発には以下のHPを丸パク参考にさせていただきました。

A-AUTO 50 開発者ブログ: Drive REST APIを使ってJavaでGoogle Driveにファイルをアップロードする方法

それでは手順の説明に入ります。

 

<手順>

 

1. まず外部jarファイルをダウンロードします。以下の二つのリンクからダウンロードしました。これらを解凍して、Project Structureで取り込みます。

 ①

https://developers.google.com/api-client-library/java/google-api-java-client/download

 ②

http://mvnrepository.com/artifact/com.google.apis/google-api-services-drive/v2-rev174-1.20.0

 

2. Google APIsで使用許可の設定を行います。参考HPでは「Google Developers Console」とあるのですが、変わったんですかね。以下のように進めます。

 

 (1) プロジェクトを作成します。名前は適当でいいです。

 

 (2)  ライブラリから利用するAPIを選びます。今回はDrive APIです。選んだら有効にして完了です。

 

3. 続いて認証情報を入力します。認証情報から設定するのですが、ここが参考HPとやや相違があり、躓きました。

 

 (1)「認証情報を作成」から、「OAuthクライアントID」を選択します。

 

 (2) 今回はコンソールから実行するので「その他」を選択します。するとこのような感じでclientIDとsecretが表示されます。

f:id:yh9092:20171101212723p:plain

このIDとシークレットはプログラムで利用します。twitter4jを利用した時もこんな感じだった記憶があります。

 

 (3) 次にOAuth同意画面を開き、メールアドレスとサービス名を入力して完了です。

 

4. プログラムを作成します。参考HPさんの方をコピペさせていただきました。REDILECT_URLには "urn:ietf:wg:oauth:2.0:oob" と入力します。よく分かんないですが、リファレンス的なのに書いてあるみたいです。ここが一番苦労しました。

 

 

これで完成です。実行すると以下のようにコンソールに出力されます。

f:id:yh9092:20171101213543p:plain

 

このURLを開くとログイン画面が開き、ログインすると、アクセス権等の許可画面が出ます。そこで許可すると、こんな画面になります。

f:id:yh9092:20171101213731p:plain

ここに書かれているコードをコピペして、コンソールの認証コードのとこに書き、ENTERを押します。すると、認証が行われ、成功するとファイルがドライブにアップロードされます。

 

f:id:yh9092:20171101214315p:plain

アップロードが成功したことが確認できました。

 

<感想>

Driveにアップロードする流れをつかむことはできました。ただ、実行 → URLを開く → ログイン → アクセス許可 → 認証コード入力 というやり取りを毎回するわけにはいかないので、一度認証したらアカウント情報を登録して再度利用できるようにする、などの工夫が必要だと思いました。

課題で作成したいものはアップロードだけでなく、ファイル情報の取得も必要なので、それもできるようにならないなって感じです。どっかにいいソース落ちてないかなー。

何はともあれ、Googleデベロッパーツールを利用し、APIを試せたのはよかったです。

 

それでは。