TransWikia.com

Google Apps Script を実行するとエラー: undefined のメソッド「getItemResponses」を呼び出せません

スタック・オーバーフロー Asked by yoshi2018 on December 29, 2020

いつもお世話になっております。
さて、フォームスクリプトを作成していました。
以前は以下のスクリプトでも問題なくメールにフォームの内容が送信されていたのですが、エラーが生じてしまいました。

エラーの内容は以下の通りです。

undefined のメソッド「getItemResponses」を呼び出せません。

ソースコードは以下になります。

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 ='[email protected]';
  var title ='[依頼を受け付けました]';
  var content ='下記の内容で、依頼を受信しました。nn'+ message;
  GmailApp.sendEmail(address, title, content);
}

トリガーは問題なく設定できていました。ソースコードのどこがおかしいのでしょうか。
トリガーのエラー率が100%になっています。

3 Answers

回答ではないのですが、私(初心者ですが)も同じ現象でとまっていて(スクリプトもほとんど同じなので同じことをやろうとしていると思います)、
「// FormApp.getActiveForm()」の追記も
「トリガーの削除、再作成、権限承認」もやりましたし
Formからスクリプト作成、スプレッドシートからスクリプト作成、の、両方試しましたが
エラーが出て実行できませんでした・・・。
この質問者さん、もし、解決済なら、方法を教えていただきたく、投稿させて頂きました。

Answered by すてふぁん on December 29, 2020

Scopeの問題のようです。以下をコメントでつけて、再度トリガーを付け直せば直ります。

// FormApp.getActiveForm()

詳細は、以下回答を参照してください。
Googleフォームのスクリプトの新しいトリガー設定画面でトリガー設定すると、イベントがうまく渡らなくなりました。今までのスクリプトは使えなくなったのでしょうか?
(handy matsuさんが参照出してくださっていますが、URLが長すぎて開かないため、再掲します)

Answered by ふみやん on December 29, 2020

表示されたエラーメッセージで検索すると同じような症状について書かれた記事がいくつか見つかります。
対処方法としては「いったんトリガーを削除して再設定してください」とあります。
なお、再設定の際に「権限の追加」に関するダイアログが表示されるそうなので、こちらを承認し直してみてください。

参考:
Google Apps Scriptで メソッド「getItemResponses」を呼び出せません。 が出る時 - Qiita
Googleフォームの自動送信スクリプトに、急に承認が必要になった話

Answered by cubick on December 29, 2020

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP