4
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【kintone】Googleフォームからレコードを登録する

Last updated at Posted at 2020-10-24

Googleフォームからkintoneにレコード登録できるらしい!
と知って、試してみた記録です。

参考ページ:

Google フォームとkintoneを連携してみよう!

kintone とGoogle Apps Script連携

kintoneアプリを作成する

こんな感じで作成します。

image.png

フィールド フィールド名 フィールドコード
文字列 (1行) Email Email 必須
文字列 (1行) 名前 Name 必須
ラジオボタン 参加/不参加 attend 必須、参加/不参加

※メールアドレスはあとでupdateKeyにしたいと思いまして、文字列(1行)にしてみました。

APIトークン生成&コピーする

APIトークンを生成して、「レコード追加」にチェックを入れておきましょう
image.png

Googleフォームを作成する

※Googleフォームの詳しい作成方法はここでは省略しますm(_ _)m

メールアドレスを収集する設定にする

(1)歯車ボタンをクリック
image.png

(2)メールアドレスを収集するにチェック(回答のコピーを送信にチェック入れてもいいかも)
image.png

(3)メールアドレス入力欄ができた
image.png

名前欄作成

image.png

参加/不参加欄作成

image.png

gasを書く

画像のように操作して、スクリプトエディタを表示させます。
image.png

ライブラリとマニフェストファイルの設定

↓こちらのStep 9とStep 10を参考に、ライブラリと、マニフェストファイルの設定をします。
Google フォームとkintoneを連携してみよう!

コードを書く

先程のdeveloper networkのサイトのstep 11のコードを参考に、下記のように書いておきます。

  • サブドメイン
  • アプリID
  • アプリの名前
  • APIトークン

をご使用の環境に合わせてください。

forEachやアロー演算子も使えるみたい。

function getFormResponse(e) {
    'use strict';

    //アンケートの回答を取得
    const itemResponses = e.response.getItemResponses();

    //追加するレコード作成
    let record = {};
    record["Email"] = {"value": e.response.getRespondentEmail()};
    itemResponses.forEach(item => {                         
        switch (item.getItem().getTitle()) {
            case "名前":
                record["name"] = {"value": item.getResponse()};
                break;
            case "参加/不参加":
                record["attend"] = {"value": item.getResponse()};
                break;
        }                                           
    });
    
    //recordを配列にして返す
    return [record];
}

function sendToKintone(e) {
    'use strict';
    const subdomain = "サブドメイン";//.cybozu.comの前のサブドメイン名
    const apps = {
        YOUR_APPLICATION: { appid: アプリID, name: "アプリの名前", token: "さっきコピーしたAPIトークン" }
    };
    const manager = new KintoneManager.KintoneManager(subdomain, apps);// ライブラリの初期化
  
    const records = getFormResponse(e);
  
    const response = manager.create("YOUR_APPLICATION", records);//kintone レコードの生成
    // ステータスコード
    const code = response.getResponseCode();   
}

トリガーの設定

(1)「編集→現在のプロジェクトのトリガー」をクリック
image.png

(2) 右下の「トリガーを追加」
image.png

(3) 実行する関数を選択で、上記コードをそのまま使用する場合は「sendToKintone」
イベントの種類を選択で「フォーム送信時」を選択して、「保存」をクリックします
image.png

アンケートを送信してみる

アンケートに入力して、送信ボタンクリックします。
image.png

kintoneアプリに反映されましたでしょうか?
image.png

まとめ

Googleフォームとkintoneを連携させるためには、
アプリに合わせてフォームを作ったりコーディングしたりする必要があります。

なかなか大変ですが、ちょっとしたフォームが1つほしい、継続的には不要なんて場合には作ってみてはいかがでしょうか??

また、簡単にフォーム連携ができるサービスなどもあるので試してみるのもいいかもしれません^0^!

ではでは!

4
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?