Sanepi
1
Googleフォームの結果をkintoneのゲストスペースに反映させたいです。
現状は、Googleフォームの結果をkintoneのアプリに反映は出来たのですが
次のステップとして、ゲストスペースのアプリに結果を反映させたいと考えています。
発生した問題やエラーメッセージを具体的に書きましょう
const apps = {
YOUR_APPLICATION1: {appid: @, name: ‘@@@’, token: ‘@@@@@’}
};
→このコードの「appid:@」を「appid:guest/@」と修正をしてみて試したのですが
結果そのものが反映できませんでした。
どのように修正すれば、ゲストスペース上にGoogleフォームの結果をkintoneに
反映できるでしょうか?
const getFormResponse = (e) => {
'use strict';
const itemResponses = e.response.getItemResponses();// アンケートの回答を取得
let records = '[';
records += Utilities.formatString('{"Email": { "value": "%s" }', e.response.getRespondentEmail());// 回答者のEmailアドレスの取得
for (let i = 0; i < itemResponses.length; i++) {
const itemResponse = itemResponses[i];
switch (itemResponse.getItem().getTitle()) {
case '参加予定日':
records += Utilities.formatString(',"schedule" : { "value": "%s" }',
itemResponse.getResponse());// 質問に対する回答を取得
break;
case '貴社名':
records += Utilities.formatString(',"Company_name" : { "value": "%s" }',
itemResponse.getResponse());// 質問に対する回答を取得
break;
case '参加者 氏名':
records += Utilities.formatString(',"participant" : { "value": "%s" }',
itemResponse.getResponse());// 質問に対する回答を取得
break;
case '電話番号':
records += Utilities.formatString(',"TEL" : { "value": "%s" }',
itemResponse.getResponse());// 質問に対する回答を取得
break;
case '参加予定内容':
records += ',"Content" : { "value": ["' + (Utilities.formatString('%s',itemResponse.getResponse())).replace(/,.*?/g,'","') + '"] }';//チェックボックス
break;
}
}
records += '}]';
Logger.log('Response JSON is "%s"', records);
return records;
};
const sendToKintone = (e) => {
'use strict';
Logger.log('Form submitted');
const subdomain = '@@@.cybozu.com';// サブドメイン名
const apps = {
YOUR_APPLICATION1: {appid: @, name: '@@@', token: '@@@@@'}
};
const manager = new KintoneManager.KintoneManager(subdomain, apps);// ライブラリーの初期化
let str = getFormResponse(e);
str = str.replace(/\n/g, '\\n').replace(/\r/g, '\\r').replace(/\t/g, '\\t');
const records = JSON.parse(str);// JSON形式に変換
const response = manager.create('YOUR_APPLICATION1', records);// kintone レコードの生成
// ステータスコード
// 成功すれば200になる
const code = response.getResponseCode();
Logger.log('Response code is "%s"', code);
};
Sanepi
3
const getFormResponse = (e) => {
'use strict';
const itemResponses = e.response.getItemResponses();// アンケートの回答を取得
let records = '[';
records += Utilities.formatString('{"Email": { "value": "%s" }', e.response.getRespondentEmail());// 回答者のEmailアドレスの取得
for (let i = 0; i < itemResponses.length; i++) {
const itemResponse = itemResponses[i];
switch (itemResponse.getItem().getTitle()) {
case '参加予定日':
records += Utilities.formatString(',"schedule" : { "value": "%s" }',
itemResponse.getResponse());// 質問に対する回答を取得
break;
case '貴社名':
records += Utilities.formatString(',"Company_name" : { "value": "%s" }',
itemResponse.getResponse());// 質問に対する回答を取得
break;
case '参加者 氏名':
records += Utilities.formatString(',"participant" : { "value": "%s" }',
itemResponse.getResponse());// 質問に対する回答を取得
break;
case '電話番号':
records += Utilities.formatString(',"TEL" : { "value": "%s" }',
itemResponse.getResponse());// 質問に対する回答を取得
break;
case '参加予定内容':
records += ',"Content" : { "value": ["' + (Utilities.formatString('%s',itemResponse.getResponse())).replace(/,.*?/g,'","') + '"] }';//チェックボックス
break;
}
}
records += '}]';
Logger.log('Response JSON is "%s"', records);
return records;
};
const sendToKintone = (e) => {
'use strict';
Logger.log('Form submitted');
const subdomain = '@@@.cybozu.com';// サブドメイン名
const apps = {
YOUR_APPLICATION1: {appid: @, name: '@@@', token: '@@@@@'}
};
const manager = new KintoneManager.KintoneManager(subdomain, apps);// ライブラリーの初期化
let str = getFormResponse(e);
str = str.replace(/\n/g, '\\n').replace(/\r/g, '\\r').replace(/\t/g, '\\t');
const records = JSON.parse(str);// JSON形式に変換
const response = manager.create('YOUR_APPLICATION1', records);// kintone レコードの生成
// ステータスコード
// 成功すれば200になる
const code = response.getResponseCode();
Logger.log('Response code is "%s"', code);
};
こちらでよろしいでしょうか?
上記内容は、サイボウズのGoogleフォームとの連携を引用しているコードになっております。
Sanepi
5
Googleフォームの結果をkintoneのゲストスペースに反映させたいです。
現状は、Googleフォームの結果をkintoneのアプリに反映は出来たのですが
次のステップとして、ゲストスペースのアプリに結果を反映させたいと考えています。
発生した問題やエラーメッセージを具体的に書きましょう
const apps = {
YOUR_APPLICATION1: {appid: @, name: ‘@@@’, token: ‘@@@@@’}
};
→このコードの「appid:@」を「appid:guest/@」と修正をしてみて試したのですが
結果そのものが反映できませんでした。
どのように修正すれば、ゲストスペース上にGoogleフォームの結果をkintoneに
反映できるでしょうか?
const getFormResponse = (e) => {
'use strict';
const itemResponses = e.response.getItemResponses();// アンケートの回答を取得
let records = '[';
records += Utilities.formatString('{"Email": { "value": "%s" }', e.response.getRespondentEmail());// 回答者のEmailアドレスの取得
for (let i = 0; i < itemResponses.length; i++) {
const itemResponse = itemResponses[i];
switch (itemResponse.getItem().getTitle()) {
case '参加予定日':
records += Utilities.formatString(',"schedule" : { "value": "%s" }',
itemResponse.getResponse());// 質問に対する回答を取得
break;
case '貴社名':
records += Utilities.formatString(',"Company_name" : { "value": "%s" }',
itemResponse.getResponse());// 質問に対する回答を取得
break;
case '参加者 氏名':
records += Utilities.formatString(',"participant" : { "value": "%s" }',
itemResponse.getResponse());// 質問に対する回答を取得
break;
case '電話番号':
records += Utilities.formatString(',"TEL" : { "value": "%s" }',
itemResponse.getResponse());// 質問に対する回答を取得
break;
case '参加予定内容':
records += ',"Content" : { "value": ["' + (Utilities.formatString('%s',itemResponse.getResponse())).replace(/,.*?/g,'","') + '"] }';//チェックボックス
break;
}
}
records += '}]';
Logger.log('Response JSON is "%s"', records);
return records;
};
const sendToKintone = (e) => {
'use strict';
Logger.log('Form submitted');
const subdomain = '@@@.cybozu.com';// サブドメイン名
const apps = {
YOUR_APPLICATION1: {appid: guest/@/@@, name: '@@@', token: '@@@@@'}
};
const manager = new KintoneManager.KintoneManager(subdomain, apps);// ライブラリーの初期化
let str = getFormResponse(e);
str = str.replace(/\n/g, '\\n').replace(/\r/g, '\\r').replace(/\t/g, '\\t');
const records = JSON.parse(str);// JSON形式に変換
const response = manager.create('YOUR_APPLICATION1', records);// kintone レコードの生成
// ステータスコード
// 成功すれば200になる
const code = response.getResponseCode();
Logger.log('Response code is "%s"', code);
};
aaa
6
一番初めの質問投稿を修正していただきたかったです。
kintone とGoogle Apps Script連携 #JavaScript - Qiita
パスワード認証
アプリのAPIトークンは使わず、kintoneのユーザー名とパスワードを使うパターン
ゲストスペースのアプリの場合はguestidを下記のYOUR_APPLICATION2のように設定する。
YOUR_APPLICATION2: { appid: 2, guestid: 1, name: "アプリ2"}
みたい記載がありました。
「いいね!」 1
pomo
7
KintoneManagerのDoc(Qiita)へ飛んでみると
guestid 指定した際にゲスト下で裁いていただいてるようなので、appid →guestidと書きかえて、数値で指定でいかがでしょうかね?
KintoneManagerのGithub
※追記:aaaさんと同様でした!すみません
「いいね!」 1
Sanepi
8
私の理解が及ばず、申し訳ございません。
aaa 様情報のご提供ありがとうございます。
試してみたいと思います。
「いいね!」 1
Sanepi
9
pomo 様
ありがとうございます。
提案内容を試してみたいと思います。
「いいね!」 1
system
(system)
クローズされました:
10
このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。