Googles Forms API と Google Drive API を触ってみた
概要
Googles Forms API
googleフォームをプログラムから操作するための API です。この API を使用すると、googleフォームの作成、編集、回答の取得などの操作を自動化したり、カスタムアプリケーションとの統合を行ったりすることができます。
Google Drive API
googleドライブのファイルやフォルダを操作するための API です。この API を使用すると、googleドライブ内のファイルやフォルダの作成、変更、削除、検索などの操作を自動化したり、カスタムアプリケーションとの統合を行ったりすることができます。
前提
- googleフォームは formId を持っている
- driveファイルは fileId を持っている
今回やりたかったこと
Reactアプリケーション側からgoogleフォームを作成し、googelドライブの共有フォルダにフォームを配置すること
実装案1
- Form API でフォームを作成する
- 作成したフォームを Form API で取得、更新する
- Drive API でファイルを共有フォルダに移動する
詰まったポイント
- Form API で作成する際に、配置先を共有フォルダに指定することが出来きなかった
- Drive API でファイルの移動を行おうと試みたが formId での特定が出来なかった
実装案2
- 共有フォルダにテンプレートファイルを用意する
- Drive API で1で用意したファイルの fileId を指定してコピー (これが作成用のファイルとなる)
- Drive API で2で作成したファイルの fileId を指定してフォームを取得する
- Forms API 対象フォームの formId を指定して更新 (ここでアンケート名などが更新される)
解説
formId で特定のファイルを取得することが難しかったため元になるファイルを共有フォルダに用意し、 drive API で fileId を指定してコピーを行うことで作成フォームを共有フォルダに置くことに成功した。
ユーザ操作としては作成のみだが、裏側では ファイルコピー → ファイル取得 → フォーム更新 が行われている。
まとめ
ハッカソンでアンケートの自動化を扱った際に詰まった箇所ポイントをまとめました。今回の開発を通してGoogle Forms API と Google Drive API を組み合わせることで、googleフォームを自動化できるこことやファイルの配置等も変えられることが分かりました。あくまで実装例なので他にも良い方法がありそうです。フォーム自体のカスタマイズなど色々できそうなので機会があれば触ってみたいと思います。
NCDC株式会社( ncdc.co.jp/ )のエンジニアチームです。 募集中のエンジニアのポジションや、採用している技術スタックの紹介などはこちら( github.com/ncdcdev/recruitment )をご覧ください! ※エンジニア以外も記事を投稿することがあります
Discussion