googleフォームとの連携について

お世話になっております。キントーンではじめてjavascriptに触り勉強中です。

 

タイトルの通り、googleフォームとの連携についてうまくキントーンに登録されず悩んでおります。

初心者ながらに

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

googleフォームとの連携について

など過去記事を参照して作成したものの、googleのエラーでは

SyntaxError: Unexpected comma in array literal at sendToKintone(キントーン連携:66)

「構文エラー」となっており、確認を何度もしていますが、どこが悪いのかが見当がつきません。

キントーン連携:66の列は

var response = manager.create(“YOUR_APPLICATION1”, records);//kintone レコードの生成

が相当しています。

 

また、F12のコンソールでは「送信先がみつからない」というエラーです。

ただ、IDやAPIトークンなどはあっていると思います。

説明ページ通りにそれぞれの設定もしました。

 

こちらのコードでもし問題点にお気づきの方いらっしゃいましたら

ご教授いただけますと幸いです。

長いコードになりますが、よろしくお願いいたします。

 

function getFormResponse(e) {
‘use strict’;
var itemResponses = e.response.getItemResponses();//フォームの入力内容を取得
var records = ‘[’;
for (var i = 0; i < itemResponses.length; i++) {
var itemResponse = itemResponses[i];
switch (itemResponse.getItem().getTitle()) {
case “法人名”:
records += Utilities.formatString(‘,“法人名” : { “value”: “%s” }’,
itemResponse.getResponse());//質問に対する回答を取得
break;
case “店舗名”:
records += Utilities.formatString(‘,“店舗名” : { “value”: “%s” }’,
itemResponse.getResponse());//質問に対する回答を取得
break;
case “商品名”:
records += Utilities.formatString(‘,“商品名” : { “value”: “%s” }’,
itemResponse.getResponse());//質問に対する回答を取得
break;
case “金額”:
records += Utilities.formatString(‘,“金額” : { “value”: “%s” }’,
itemResponse.getResponse());//回答者のEmailアドレスの取得
break;
case “契約開始”:
records += Utilities.formatString(‘,“契約開始” : { “value”: “%s” }’,
itemResponse.getResponse());//質問に対する回答を取得
break;
case “請求開始”:
records += Utilities.formatString(‘,“請求開始” : { “value”: “%s” }’,
itemResponse.getResponse());//質問に対する回答を取得
break;
case “希望納期(日付)”:
records += Utilities.formatString(‘,“希望納期_日付” : { “value”: “%s” }’,
itemResponse.getResponse());//質問に対する回答を取得
break;
case “希望納期(時刻)”:
records += Utilities.formatString(‘,“希望納期_時刻” : { “value”: “%s” }’,
itemResponse.getResponse());//質問に対する回答を取得
break;
case “営業担当者”:
records += Utilities.formatString(‘,“営業担当者” : { “value”: “%s” }’,
itemResponse.getResponse());//質問に対する回答を取得
break;
case “備考”:
records += Utilities.formatString(‘,“備考” : { “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 = “◆◆◆(https://◆◆◆.cybozu.com/の部分)”;//サブドメイン名
var apps = {
YOUR_APPLICATION1: { appid: 22, name: “見積書作成依頼”, token: “該当アプリの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);
}

こんにちは。

JSONの構文エラーですね。

case "法人名":
records += Utilities.formatString(',"法人名" : { "value": "%s" }',

パッと見て”法人名”の先頭にカンマがついてるのがエラー原因かなと思いました。

フォームの一番上、レコードに登録する最初のデータが法人名なら

case "法人名":
records += Utilities.formatString('{"法人名" : { "value": "%s" }',

これに書き換えて試してみてください。

TK様

 

こんにちは、お世話になっております。

試したところ、はじめて送信と登録ができました!!!!「完了」の文字に感動です!!

何日もエラーばかりで、心が折れかけておりました。

本当に、本当にありがとうございます!!

 

最初飛ばなかった日付と時刻も、タイミングが悪かったようで更新したあと反映したらきちんとはいりました!!

ありがとうございました!!

解決して何よりです。

 

軽く調べたところそれで合ってるっぽいですねー。

試してみてください!

https://sites.google.com/site/gasgaidobukku/utilities/formatdate

 

TK様

リンクまでありがとうございます!!!勉強させていただきます。

 

最初飛ばなかった日付と時刻は、キントーンのアプリ更新とのタイミングが悪かったようで

更新したあと反映したらきちんとはいりました!!

何度お礼を言ったらいいか…!

本当にありがとうございました!