1

別の古いグループの投稿から取得した、次のGoogleAppsスクリプトを機能させようとしています。基本的には、getThreads(n、m)が呼び出されるところまで機能しています。戻ってくるエラーコードは次のとおりです。

TypeError:nullのメソッド「addToThreads」を呼び出すことはできません。

getThreads()関数をデバッグする簡単な方法はありますか?目的は、ラベルをEVERNOTEからScripts/Forwardに変更することです。

// Set up multiple labels/sub-labels and add one or more email addresses
function forwardEmails() {
  forwardThreads("EVERNOTE", "username@m.evernote.com", "@Filtered Email Archive");
//  forwardThreads("Forward/MoreItems", "username1@gmail.com, username2@gmail.com", "MORE INFO");
  }

function forwardThreads(label, addr, subjSuffix) {

  var maxSubjLength = 250; 
  var applylabel = GmailApp.getUserLabelByName("Scripts/Forward");

  // Send individual and threaded emails.
  var msgs, msg, i, j, subject, options, labels, page;
  labels = GmailApp.getUserLabelByName(label)
  var threads = labels.getThreads()
  for (i=0; i < threads.length; i++) {
    msgs = threads[i].getMessages();
    for (j=0; j < msgs.length; j++) {
      msg = msgs[j];

      subject = msg.getSubject();
      if (subject.length + subjSuffix.length > maxSubjLength) {
        subject = subject.substring(0, maxSubjLength - subjSuffix.length);
      }

      options = { htmlBody: msg.getBody(), attachments : msg.getAttachments() };

      GmailApp.sendEmail(addr, subject +" "+ subjSuffix, msg.getBody(), options);

    }
  }

  while(!page || page.length == 100) {
    page = labels.getThreads(0, 100);

  // Apply new label; move the thread out of other label
     applylabel.addToThreads(page);    // ***** Failing on this line - assume page is NULL
     labels.removeFromThreads(page);
      }  
}
4

1 に答える 1

1

TypeError: Cannot call method "addToThreads" of null.このコードのエラー メッセージは、applylabel変数がであることを意味しますnull。システムがラベルを見つけられない場合にのみ発生しGmailApp.getUserLabelByName("Scripts/Forward");ます。スクリプトを実行する ID を持つユーザーには、そのようなラベルはないと仮定します。nullScripts/Forward

于 2012-08-12T15:38:08.093 に答える