# Google Forms to kintone JSONのエラーが出ます。

**URL:** <https://community.cybozu.dev/t/topic/7834>\
**Category:** kintone 開発相談\
**Created:** [2023 年 7 月 20 日午前 6:46 UTC](https://community.cybozu.dev/t/topic/7834 "2023-07-20T06:46:43Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Masaki](https://avatars.discourse-cdn.com/v4/letter/m/db5fbb/32.png) [@Masaki](https://community.cybozu.dev/u/Masaki)\
**Post date:** [2023 年 7 月 20 日午前 6:46 UTC](https://community.cybozu.dev/t/topic/7834/1 "2023-07-20T06:46:43Z")

</div>

> **[Google フォームとkintoneを連携してみよう！](https://cybozudev.zendesk.com/hc/ja/articles/115003856483-Google-%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A0%E3%81%A8kintone%E3%82%92%E9%80%A3%E6%90%BA%E3%81%97%E3%81%A6%E3%81%BF%E3%82%88%E3%81%86-?page=1#comments)**
>
> （Author : Fuji Business International Mamoru Fujinoki）
> 
> はじめに
> アンケートやイベントの出欠など Google フォーム を使うと容易に作成、送信が出来ます。今回は、Google Apps Script を使って、その回答を素早くkintoneに登録してみたいと思います。
> 1. 事前に必要なもの
> 
> Googleアカウント
> kintone...

上記URLを基に下記作成しました。  
※メールアドレスの収集だけ削除しました。

const getFormResponse = (e) =\> {  
‘use strict’;  
const itemResponses = e.response.getItemResponses();  
let records = ‘[’;  
for (let i = 0; i \< itemResponses.length; i++) {  
const 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;  
}

const sendToKintone = (e) =\> {  
‘use strict’;  
Logger.log(‘Form submitted’);  
const subdomain = ‘\*\*\*\*\*\*\*\*\*\*.cybozu.com’;// サブドメイン名  
const apps = {  
YOUR\_APPLICATION1: {appid: **, name: ‘kintone Meetup 参加者’, 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);  
}

下記エラーがでて、kintoneに反映されません。  
原因をご教示いただけますでしょうか。

SyntaxError: Unexpected token ‘,’, "[,“attend” "… is not valid JSON  
at sendToKintone(sendToKintone:38:24)

---

<div class="post-metadata">

**Author:** ![mls-hashimoto](https://sea1.discourse-cdn.com/flex015/user_avatar/community.cybozu.dev/mls-hashimoto/32/34_2.png) [@mls-hashimoto](https://community.cybozu.dev/u/mls-hashimoto)\
**Post date:** [2023 年 7 月 20 日午前 7:55 UTC](https://community.cybozu.dev/t/topic/7834/2 "2023-07-20T07:55:49Z")

</div>

```javascript
‘use strict’;

```

↓

```javascript
'use strict';

```

見た限りだと、全てのシングルクォーテーション、ダブルクォーテーションが全角になっているようです。

---

<div class="post-metadata">

**Author:** ![Masaki](https://avatars.discourse-cdn.com/v4/letter/m/db5fbb/32.png) [@Masaki](https://community.cybozu.dev/u/Masaki)\
**Post date:** [2023 年 7 月 20 日午前 8:13 UTC](https://community.cybozu.dev/t/topic/7834/3 "2023-07-20T08:13:36Z")

</div>

橋本大輔 様  
ご返答頂きありがとうございます。

こちらに貼り付けると全角になるようですが、入力時は全て半角になっておりました。  
他に原因はございますでしょうか。

---

<div class="post-metadata">

**Author:** ![lenzras](https://avatars.discourse-cdn.com/v4/letter/l/7993a0/32.png) [@lenzras](https://community.cybozu.dev/u/lenzras)\
**Post date:** [2023 年 7 月 20 日午前 8:29 UTC](https://community.cybozu.dev/t/topic/7834/4 "2023-07-20T08:29:41Z")

</div>

```javascript
YOUR_APPLICATION1: {appid: , name: ‘kintone Meetup 参加者’, token: ''}

```

appIdに値はなさそうですね。アプリ番号を入れてください。

そして、当エラーと別ですが、tokenも必要になります。

---

<div class="post-metadata">

**Author:** ![mls-hashimoto](https://sea1.discourse-cdn.com/flex015/user_avatar/community.cybozu.dev/mls-hashimoto/32/34_2.png) [@mls-hashimoto](https://community.cybozu.dev/u/mls-hashimoto)\
**Post date:** [2023 年 7 月 21 日午前 12:28 UTC](https://community.cybozu.dev/t/topic/7834/5 "2023-07-21T00:28:08Z")

</div>

> ※メールアドレスの収集だけ削除しました

見落としておりました。サンプルコードに対して、

```javascript
  records += Utilities.formatString('{"Email": { "value": "%s" }', e.response.getRespondentEmail());// 回答者のEmailアドレスの取得

```

この一文を削除したということですね。発生しているエラーは、JSONの形式があっていない旨で、Emailの前にレコードオブジェクトの欠片（{）が見えるので、それを削除したとなると

```javascript
let records = '[';
for (let i = 0; i < itemResponses.length; i++) {
const itemResponse = itemResponses[i];

```

↓

```javascript
let records = '[';
for (let i = 0; i < itemResponses.length; i++) {
records += '{';
const itemResponse = itemResponses[i];

```

このようにし、attend及びnumber\_of\_attendee、name\_of\_attendeeの前のカンマは削除する必要があります。

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex015/uploads/cybozu/original/1X/d5c841c3c5a6cb66eed514001c1b45147c9e1f4f.png) [@system](https://community.cybozu.dev/u/system)\
**Post date:** [2023 年 9 月 27 日午前 1:25 UTC](https://community.cybozu.dev/t/topic/7834/6 "2023-09-27T01:25:55Z")

</div>

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。
