JavaScript初心者でございます。
「Google フォームとkintoneを連携してみよう!」の記事を参考に
全く同じ様にGoogleフォームとKintoneのアプリを作成し、
無事にフォーム回答後、Kintone アプリ内に新規レコードを追加することができました。
コードを記載いたします。
function getFormResponse(e) {
‘use strict’;
var itemResponses = e.response.getItemResponses();//アンケートの回答を取得
var records = ‘[’;
records += Utilities.formatString(‘{“Email”: { “value”: “%s” }’, e.response.getRespondentEmail());//回答者のEmailアドレスの取得
for (var i = 0; i < itemResponses.length; i++) {
var itemResponse = itemResponses[i];
switch (itemResponse.getItem().getTitle()) {
case “参加しますか?”:
records += Utilities.formatString(‘,“attend” : { “value”: “%s” }’,
itemResponse.getResponse());//質問に対する回答を取得
break;
case “参加人数”:
records += Utilities.formatString(‘,“number_of_attendee” : { “value”: “%s” }’,
itemResponse.getResponse());//質問に対する回答を取得
break;
case “参加者の名前を記入してください”:
records += Utilities.formatString(‘,“name_of_attendee” : { “value”: “%s” }’,
itemResponse.getResponse());//質問に対する回答を取得
break;
}
}
records += ‘}]’;
Logger.log(‘Response JSON is “%s”’, records);
return records;
}
function sendToKintone(e) {
‘use strict’;
Logger.log(‘Form submitted’);
var subdomain = “{subdomain}.cybozu.com”;//サブドメイン名
var apps = {
YOUR_APPLICATION1: { appid: アプリID, name: “kintone Meetup 参加者”, token: “kintoneアプリのAPIトークン” }
};
var manager = new KintoneManager.KintoneManager(subdomain, apps);// ライブラリーの初期化
var str = getFormResponse(e);
str = str.replace(//g, "").replace(/\r/g, “\r”).replace(/\t/g, “\t”);
var records = JSON.parse(str);//JSON形式に変換
var response = manager.create(“YOUR_APPLICATION1”, records);//kintone レコードの生成
// ステータスコード
// 成功すれば200になる
var code = response.getResponseCode();
Logger.log(‘Response code is “%s”’, code);
}
この次のステップとして、メールアドレスを updateKey として、
一致する既存レコードに更新をかける、ということを考えております。
その場合のコードの変更点として、Cybozu developer network 運営局様より
■メールアドレスを重複禁止にし、updateKey を使った更新をする。
■下記の2行を更新処理に書き換える。
var records = JSON.parse(str);//JSON形式に変換
var response = manager.create(“YOUR_APPLICATION1”, records);//kintone レコードの生成
の2点をご指摘いただきました。
■メールアドレスを重複禁止にし、updateKey を使った更新をする。
→どこのあたりに「レコードの更新(PUT)」に記載がある様な updateKey のコードを書き込んでいけばいいのかが不明。
■下記の2行を更新処理に書き換える。
var records = JSON.parse(str);//JSON形式に変換
var response = manager.create(“YOUR_APPLICATION1”, records);//kintone レコードの生成
→ manager.create を manager.update に置き換えるだけでよろしいのでしょうか?
わかりやすい様、新しいフォームではなく同じフォームを使い、
GASだけを書き換える方向でご指摘いただけますと幸いです。
上記の2点以外にも変更が必要な箇所がある場合、合わせてよろしくお願いいたします。