Googleフォームとkintoneを連携してみよう!
はじめに
アンケートやイベントの出欠など
Googleフォーム
を使うと容易に作成、送信ができます。
今回は、
Google Apps Script
を使って、その回答をすばやくkintoneに登録してみたいと思います。
事前に必要なもの
- Googleアカウント
- kintoneアカウント
- 一年間無料の開発者環境を取得できます。
詳細は kintone開発者ライセンス(開発環境)を確認してください。
- 一年間無料の開発者環境を取得できます。
開発の流れ
- Googleフォームの作成
- kintoneアプリの作成
- Google Apps Scriptによるプログラムの作成
以上の手順で開発していきます。
Googleフォームの作成
Step 1
Googleアカウントにログイン後、右トップメニューのGoogleアプリアイコンより、Googleフォームを選択し(または、 https://docs.google.com/forms/ から直接ログイン)、「新しいフォームを作成」の「+」サインをクリックします。
Step 2
Googleフォームの作成画面が表示されるので、フォームのタイトル、フォームの詳細を以下の例のように入力します。
- [フォーム名]
- kintone Connect-to-Play LA Vol.1 −Cybozuサイボウズ−
- [フォームの説明・詳細等]
- Date: 7/13/2017, 6:30 PM - 9:00 PM
- Event Address: 21515 Hawthorne Boulevard, Torrance, CA, 90503, US
Step 3
設定アイコンをクリックして、「メールアドレスを収集する」をチェックし、変更を保存します。
Step 4
次に「無題の質問」について、メニューより質問のタイプとして「ラジオボタン」を選択し、質問欄に質問を入力、回答の選択肢を以下のように入力します。
記号「?」は半角で入力してください。
- [質問]参加しますか?
- [解答例]
- はい、参加します。
- いいえ、参加できません。
回答を必須にしたい場合、以下のように「必須」を選択します。
Step 5
以下の画像を参考に質問を追加します。
- [タイプ]記述式、[質問]参加人数、[必須選択]
- [タイプ]段落、[質問]参加者の名前を記入してください。
以上でGoogleフォームの完成です。
kintoneアプリの作成
Step 1
kintoneのアプリ作成画面より、「はじめから作成」を選択し、以下の画像を参考にフィールドを追加します。
フィールドの種類 | フィールド名 | フィールドコード |
---|---|---|
リンク(入力値の種類:メールアドレス) | メールアドレス | |
ラジオボタン | 参加しますか? | attend |
数値 | 参加人数 | number_of_attendee |
文字列(複数行) | 参加者名 | name_of_attendee |
Step 2
次にアプリの設定画面より、「APIトークン」を作成します。
「APIトークン」設定画面より、「生成する」ボタンをクリックし、「アクセス権」に「レコード追加」をチェックして「保存」します。
アプリの設定画面に戻ったら、「アプリを公開」をクリックして、作成したアプリを公開します。
以上で、アプリの完成です。
プログラムの作成
Step 1
上記で作成したGoogleフォームを再び開き、「その他」メニューから「スクリプトエディタ」をクリックします。
以下の画面が開くので、プロジェクト名、ファイル名を入力します。
Step 2
kintone API呼び出しのライブラリが公開されているので、今回はこれを利用させていただきます。
Qiita Tip:
kintoneとGoogle Apps Script連携
「ライブラリを追加」をクリックします。
Google Apps Script Library for kintone
のREADME.mdにある「Script ID(For New editor)」の値を「スクリプトID」欄に入力し、「検索」ボタンでライブラリを検索します。
ライブラリが表示されたら、最新のバージョンを選択し、「追加」をクリックします。
Step 3
manifestファイルに、OAuth scopeを記載します。
プロジェクトの設定ボタンから 「appsscript.json」マニフェスト ファイルをエディタで表示する にチェックを入れます。
エディタに戻り、appsscript.jsonに、次のようにOAuth scopeを追加します。
最後の要素に追記する場合には、末尾のカンマ(,)は不要です。
|
|
Step 4
下記を参考にコーディングします。
|
|
コーディング終了後、保存します。
解説
Googleフォームの回答を取得
以下のAPI関数で、フォーム送信時の回答のデータを取得します。
e.response.getItemResponse();
|
|
kintoneへ送信するJSON形式のデータを作成します。 回答者のメールアドレスは以下のAPI関数により取得できます。
e.reponse.getRespondentEmail();
|
|
kintoneへ送信するリクエストデータのJSON形式の詳細は 1件のレコードを登録するを参照してください。
kintoneへデータを送信
上記で作成したkintoneアプリの情報を設定します。
|
|
先ほど設定したkintone API連携用ライブラリを初期化し、上記関数で作成した、Googleフォームの回答データを文字列からJSON形式に変換し、kintoneへデータを送信します。
|
|
レスポンスのコードが200でしたら送信成功です。
|
|
Step 5
トリガーの設定画面を表示し、[トリガーを追加]からトリガーを追加します。
イベント発生時に実行する関数、トリガーとなるイベントを設定し、保存します。
以上でGoogle Apps Scriptの設定は完了です。
動作の確認
作成したGoogleフォームの右上の送信ボタンをクリックし、「フォームを送信」画面にて送信先のメールアドレス、件名、メッセージを入力し、送信ボタンでフォームを送信します。
メールに届いたGoogleフォームへのリンクより、回答を入力し送信します。
送信後、回答したデータがkintoneに記録されました。
まとめ
Googleフォームを使うとアンケートやイベントの出欠等のフォームを簡単に作成できる上、EmailやSNSで送信したり、自社のサイトにフォームを埋め込むことも可能です。
その回答をkintoneアプリに自動的に記録することによって結果を効率的に管理できるのではないでしょうか。
参照サイト
- kintoneとGoogle Apps Script連携
https://qiita.com/Arahabica/items/063877b0da439020d2c2 - Google Apps Script APIレファレンス
https://developers.google.com/apps-script/reference/forms/
更新履歴
- 2020/2/18
- Google Formsの仕様変更により、OAuth scopeの記載が必要となったため、manifestファイルにOAuth scopeの記載を追加
- 2021/4/6
- Google Apps ScriptのUI変更に伴い、画像を差し替え
このTipsは、2017年8月版kintoneで動作を確認しています。