6月25日にGoogle I/Oで発表された「Google Drive for Work」。
1ユーザー月額10ドルで容量無制限らしいですね。
インフォテリアのプリセールスエンジニアに聞いてみると、時々お客様からGoogle Driveを使っているという話もあるとか。
Google Driveキテるのかも!?
そんなわけで、今回の「つないでみた」は「Google Drive」です。
ASTERIA WarpでGoogle Driveにつなぐシーンはいろいろ考えられますが、Excelなどのファイルを自動生成して社員に共有する場面が多いのではないでしょうか?
例えば、週次の売上情報を自動生成してコメント欄は各部門で記載するなどの使い方や、逆に外出している社員からの報告を社外からもアクセスできるGoogle Driveで集めるなど、外から使える共有フォルダとして様々な場面が考えられます。
まずは簡単なところで、RESTでつないでExcelをアップロードしてみようと思います。
RESTでつなぐためにはGoogle Drive側で許可する設定が必要です。
Developer Consoleのページに行って、プロジェクトを作成します。(Googleのアカウントが必要です)
適当な名前でプロジェクトの作成ができたら、「APIと認証」 から「API」の設定をまず行います。
「Drive API」というのがGoogle Driveを扱うためのAPIですので、コレを「有効」にしましょう。
続いて、「認証情報」です。
GoogleはOAuthという認証方式です。最近増えてますよね。
アクセスする側からするとメンドクサイのですが、まぁ致し方なしです。
「新しいクライアントIDを作成」で新しいアクセス情報を取得します。
欲しい情報は「クライアントID」「クライアントシークレット」「リダイレクトURI」の3つです。
この3つが取得できればアプリケーションの種類はどれでもいいはずですが、今回は「インストールされているアプリケーション」の「その他」を選びました。
ここまでで無事欲しい3つの情報、「クライアントID」「クライアントシークレット」「リダイレクトURI」が取得できたと思いますので、これから「アプリケーションコード」を取得します。
ブラウザで以下のようなアドレスにアクセスします。
https://accounts.google.com/o/oauth2/auth?scope=https://www.googleapis.com/auth/drive&redirect_uri=<取得したリダイレクトURI>&response_type=code&client_id=<クライアントID>
するとブラウザにコードが表示されますので、コピーします。
ここまでで、ASTERIA Warpからアクセスするための4つの情報「クライアントID」「クライアントシークレット」「リダイレクトURI」「アプリケーションコード」が揃いました。
前置きが長かったですが、今回作成したフローです。
認証でここまでで取得した4つの情報からAPIのアクセスに必要なトークンを取得します。
トークンは一定時間で切れてしまうため、切れていた場合は再取得するよう、分岐を入れました。
認証さえ通ってしまえば、ヘッダにトークンをつけてファイルをエンコードして送るだけでアップロードできます。
今回はファイルをアップロードする「だけ」のフローを作ってみました。
このAPI、ほんとに「だけ」なので、アップロード先のファイル名さえ指定できません。
出来上がったファイルは、「Untitled」というファイル名になりました。
ファイルの名前のほか「メタ情報」を付随するにはJSONを一緒に送る必要があります。
設定の情報だけで話が長くなってしまったので、これは次回以降で。
ASTERIA Warpシリーズ担当のシニアプロダクトマネージャー。ホワイトペーパーの執筆のほか、開発経験を活かしたASTERIA Warpを使ったデモ作成等を実施。
Related Posts
ASTERIA Warp製品の技術情報やTips、また情報交換の場として「ADNフォーラム」をご用意しています。
アステリア製品デベロッパー同士をつなげ、技術情報の共有やちょっとしたの疑問解決の場とすることを目的としたコミュニティです。