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

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

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

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

Google

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

Q&A

2回答

22715閲覧

グーグルフォームにて回答受信した際の通知がこない

TSV

総合スコア0

Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

Google

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

0グッド

0クリップ

投稿2020/12/13 13:31

前提・実現したいこと

グーグルフォーム上で、回答が送信された際に、管理者に送信された旨メッセージが届くようにしたいと思っています。

すでに、同様の仕組みを実装したグーグルフォームのスクリプトをコピペしたところ
以下のエラーメッセージが発生しました。

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

エラーメッセージ TypeError: Cannot read property 'response' of undefined(行 4、ファイル「コード」)表示しない ### 該当のソースコード // FormApp.getActiveForm() function submitForm(e){ var items = e.response.getItemResponses(); var msg = ''; for (var i = 0; i < items.length; i++) { var item = items[i]; var q = item.getItem().getTitle(); var a = item.getResponse(); msg += q + ': ' + a + '\n\n'; } GmailApp.sendEmail('samplem@test.com', '「フォーム」にて回答が提出されました。', msg); } ```ここに言語名を入力 ソースコード

試したこと

過去の回答から、以下を試しましたがうまくいかず、基本的なことかもしれませんが、解決方法があれば教えていただけますと幸いです。
「// FormApp.getActiveForm()」を入れてみる。

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

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

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

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

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

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

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

guest

回答2

0

TypeError: Cannot read property 'response' of undefined

このエラーは undefined のプロパティ 'response' が読み取れない、と言っています。
従って、response がとれないのではなく、e が取れていないのです。

トリガーではなく関数の実行を行ったのだと推測できます。

Googleフォーム上で開いたスクリプトエディタで書いているので、つながっている

繋がっているのはフォームであって、回答ではないです。
テストで実行するときに 0 個以上の回答を保持しているフォームのどの回答を使うか、コード上で指示していないので、エラーになるのは当然だと思います。

テスト実行したいなら

javascript

1var items = e.response.getItemResponses();

javascript

1var items = FormApp.getActiveForm().getResposes()[0];

とでもすれば、最初の回答をサンプルにして「関数の実行」を試すことができます。
(もちろんこの場合でも、回答が 1 つもなければ別のエラーになってしまいますが)

投稿2020/12/18 08:41

papinianus

総合スコア12705

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

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

0

エラーを見る限りresponseが取れていないようですね。
Googleフォームとgasが紐づいていない気がします。
Googleフォームから作成したスプレッドシートのgasだとFormApp.getActiveForm()でとれますが、
他の場合はIDなどで紐づける必要があります。
また、トリガーは設定しましたか?

この辺が参考になると思います。
https://valmore.work/auto-response-from-google-form/

投稿2020/12/14 05:58

masaki_

総合スコア19

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

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

TSV

2020/12/14 07:27

有難うございます。 Googleフォーム上で開いたスクリプトエディタで書いているので、つながっているはずなのですが… トリガーも作成済です。 もう一度、スクリプトとトリガーを消去して、書き直したのですが、やはりうまく行かなかったため、教えていただきましたリンク先を参照にしつつ、フォームにある通知機能を使うことにしました。 丁寧に解説いただき有難うございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問