kinntone側にレコード登録されないのですが、
間違っている箇所はございますでしょうか。
お知恵をお借りできますと幸いです。
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());//質問に対する回答を取得
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 = ‘サブドメイン’;//サブドメイン名
var apps = {
“YOUR_APPLICATION1”: { appid:アプリID, name: ‘アプリ名’, token: ‘トークンID’ }
};
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);
}
メールアドレスのところを、
case "メールアドレス":
records += Utilities.formatString('{"メールアドレス" : { "value": "%s" }',
にしてみてください。
また、エラー内容などがあれば回答がしやすいので記載したほうがいいです。
TK様
早速ご対応頂きましてありがとうございます。
フォーム回答送信後、特にエラーが出ないのですが、Kintone側にレコード登録されない状態でございます。
ご指摘頂いた箇所を修正し、フォーム送信を実施したのですが、
同様にエラーはなく、レコード登録されない状況でございます。
アプリ側のフィールド設定とかが原因かもしれませんねー。
アプリのフィールドは全部文字列1行でしょうか?
TK様
アプリ側のフィールドは文字列1行で作成しています。
うーむ・・コード自体は大丈夫だと思うのですが・・・
フォームを送信した後、成功していたらこういうLogが出るんですがどうでしょうか?
ステータスが400なのでリクエスト失敗してるっぽいですね
すいませんがもう一度、現時点のコードを張っていただいていいでしょうか?
何度もご確認頂きありがとうございます。
サブドメイン名とアプリケーション名とトークンの記載は控えてあります。
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());//質問に対する回答を取得
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 = ‘subdomain’;//サブドメイン名
var apps = {
“YOUR_APPLICATION1”: { appid:41, name: ‘アプリケーション名’, token: ‘トークンID’ }
};
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);
}
ありがとうございます。
多少手を加えましたので、そのままコピーしてからドメインやTokenを変更して試していただきたいです。
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());//質問に対する回答を取得
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 = 'subdomain';//サブドメイン名
var apps = {
"YOUR_APPLICATION1": { appid: 41, name: 'アプリケーション名', token: 'トークンID' }
};
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);
}
TK様
修正頂きましてありがとうございます。
修正頂いたコードを利用したのですが、同じく400でした。
Kintone側の設定も見返してみます。
仕事が忙しく投稿が遅れましたが、私も未だにkintone側へはデータ挿入はできません。
Response code is “401.0” というエラー
回答送信後は、以下のエラー
Uncaught Could not establish connection. Receiving end does not exist.
認証まわりもごく検討しているつもりですが、本当にできるのでしょうか?