新規投稿
フォローする

googleフォーム連携 エラー

サイトに記載されちた初期設定をそのままやってみましたが
TypeError: Cannot read property 'response' of undefined
getFormResponse
@ コード.gs:3
というエラーが出ます。
他の投稿も見てみましたが、どのように対応したらよいかわかりません。
3行目でエラーが出ている認識ですが、ここは原文のままでいいように感じております。
 
以下
サブドメインとトークンを仮でkkkで表示しています
 
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(',"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 = 'kkk.cybozu.com';// サブドメイン名
  const apps = {
    YOUR_APPLICATION1: {appid: 886, name: 'googleフォームテスト', token: 'kkk'}
  };
  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);
}
 
0

4件のコメント

Avatar
らいと

参考にされたページは↓こちらですか?
https://developer.cybozu.io/hc/ja/articles/115003856483
※私が以前試してみたときはこのページのとおりに設定することで連携できたので、公式のドキュメントですし、記事の内容には問題がないと思います。

エラーの出ている箇所(3行目)については、kintoneは関係なさそうですね。
フォームからもってきた「e」がGASでうまく読めてないようですね。
ですのでGoogle側(フォーム、GAS、トリガー等)の設定周りを再確認するのがよいと思います。
※サイトのとおりに「そのまま」設定したつもりでも、見落としや設定ミスがあるのは超あるあるです。できれば最初からもう一つ作ってみるのがおすすめです。

それと、最後のコンソールのエラー出ている画像って、GASの実行時にブラウザの開発者ツールに出たエラーでしょうか?
GASのエラーログを確認する場所はそこではなく「実行数」のところです。(ログの吐き出し方も含めて調べてみてください

1
Avatar
千葉 操

らいと様、ご回答ありがとうございます。

なんでうまくいったかはわかりませんが、実行自体はできました。

対応した内容

・kintone内の必須項目の変更(フォームでは全部必須にしてましたが、

kintone内はラジオボタンのみ必須にしました)

・GAS内27行目の改行の削除(実行数のエラーに27の指定があったため)

 

上記の対応でGASの実行自体は出来ましたが、kintoneのレコードには反映されていませんでした。

この件は同様の記事があったと思うので、調べてみます。

らいと様ありがとうございました。

千葉 操により編集されました
0
Avatar
千葉 操

https://developer.cybozu.io/hc/ja/community/posts/360060227692-Google%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A0%E3%81%8B%E3%82%89kintone%E3%81%AB%E5%8F%8D%E6%98%A0%E3%81%95%E3%82%8C%E3%81%AA%E3%81%84

こちらの記事と同様に

実行数に「Response code is "400.0"」出ます

フォーム送信時のデベロッパーツールの確認をすると

フォントまたは、GAS内のformResponseでエラーがあるように感じております(初心者視点です)

 

再度GAS内の確認とエラーの解析を初心者ながら進めていきたいと思います。

こういったエラーはGoogle検索などでも結果が分からないことが多いですが

良い調べ方や、参考になる本等あればご教授頂ければ幸いです。

0
Avatar
千葉 操

上記の件解決しました。初歩的な所でしたが

リンクを設定する際、webサイトのアドレスで設定していました

こちらをメールアドレスにすることで解決できました。

0
サインインしてコメントを残してください。