質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

Q&A

解決済

2回答

1124閲覧

スクリプトエディタ:Googleフォームから特定のメールアドレスへ通知ができない

soyox

総合スコア13

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

0グッド

0クリップ

投稿2018/12/05 04:51

前提・実現したいこと

Googleフォームを作成し、フォーム送信があったときにその内容をGメール以外の特定のメールアドレスへ
通知しようとしています。
スクリプトエディタを使って過去2度別のフォームで同じことを実現しており、
今回のフォームでも同様に記述したのですが
エラーが出てメール通知が届きません。
解決方法をご教示いただければ幸いです。よろしくお願いいたします。

発生している問題・エラーメッセージ

エラー TypeError: undefined のメソッド「getItemResponses」を呼び出せません。 at submitForm(コード:2) または TypeError: undefined からプロパティ「response」を読み取れません。 at submitForm(コード:2)

該当のソースコード

function submitForm(e){ var itemResponses = e.response.getItemResponses(); var message = ''; for (var i = 0; i < itemResponses.length; i++) { var itemResponse = itemResponses[i]; var question = itemResponse.getItem().getTitle(); var answer = itemResponse.getResponse(); message += (i + 1).toString() + '. ' + question + ': ' + answer + '\n'; } var address = 'hoge@hoge-ne.jp'; var title = 'hoge'; var content = '以下の内容でhogeの申請がありました。\n\n' + message; GmailApp.sendEmail(address, title, content); }

試したこと

トリガーを設定しなおすとよいとの記事をみたのでしてみましたができませんでした。
また、依然作った同じ方法でメール通知を送っているフォームでテストしたところ、
ちゃんと届きます。
時々Googleの仕様が変わるようなので最新の情報を探してみましたが、該当するものは見つかりませんでした。
独学の素人のため、要領を得ない質問でしたらすみません

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

「フォーム通知」というアドオンがあったので、それを使うことにしました。
ご協力ありがとうございました。

投稿2018/12/06 00:38

soyox

総合スコア13

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

  • 1

TypeError: undefined のメソッド「getItemResponses」を呼び出せません。 at submitForm(コード:2)

トリガー設定に起因します。responseは、Google Formのスクリプトの「フォームの送信時」イベントで送信されます。
スプレッドシートのスクリプトの「フォームの送信時」イベントには含まれません。
「スクリプトエディタ」をどこから開いたか、が大きく関係します(フォームの右上の…を縦にしたものから設定していれば上手く動くはず)

  • 2

TypeError: undefined からプロパティ「response」を読み取れません。 at submitForm(コード:2)

eがないということですので、実行方法が間違っています。
おそらく「関数を実行」などによって送信したことで発生したエラーだと思われます。
「関数を実行」では「送信」イベントが発生しませんので、送れるかの確認は必ず、フォームに回答して確認してください。

投稿2018/12/05 05:06

papinianus

総合スコア12705

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

soyox

2018/12/05 06:45

papinianusさま ありがとうございます。 いろいろやり直して、2のエラーは出なくなりました。 1のほうはフォームの右上の…を縦にしたところから開いているのですが… 何回もやりすぎたかもと思い、フォームを新しく作り直したりもしてみたのですが やはり同じ現象が出てしまいました。 因みに、同じ内容のフォームを別のgoogleアカウントで作っていて、 今回のアカウントで作り直す作業をしています。 タイトルなどが重複することも何か原因になっているでしょうか。 大変恐縮ですがもう少し回答お待ちしています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問