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

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

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

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

2回答

4625閲覧

構文エラーとなり保存できない

Kodanosuke

総合スコア42

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

1グッド

0クリップ

投稿2020/10/20 01:54

前提・実現したいこと

下記のコードのどこかに構文エラーがあるようでエラーとなり保存ができません.
どこなのかご指摘いただけないでしょうか.
よろしくおねがいします・

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

構文エラー

該当のソースコード

GoogleAppScript

1function main() { 2 //①1分ごとに実行するため過去1分間の添付ファイル付きメールを取得 3 //②取得したメールから添付ファイルを取得 4 //③取得した添付ファイルをフォルダに格納 5 //④格納したファイル情報をスプレッドシートに転記 6 const ssheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Ctrl") 7 const FOLDER_ID = ssheet.getRange("A2").getValue(); //フォルダID 8 const tmppastData = ssheet.getRange(8, 6, ssheet.getLastRow()-7, 1).getValues() 9 const pastData = tmppastData.reduce((pre,current) => {pre.push(...current);return pre},[]) 10const tgtAddress = ssheet.getRange('C2').getValue() 11 12const folder = DriveApp.getFolderById(FOLDER_ID); 13const messagesForThreads = getTargetThreads(tgtAddress); 14 15const msgDATA = {} 16for(const messages of messagesForThreads){ 17 for(const message of messages){ 18 19 msgDATA.ID = message.getId() 20 var flag = pastData.includes(msgDATA.ID) 21 Logger.log(flag != true) 22 if(flag != true){ 23 msgDATA.Date = Utilities.formatDate(message.getDate() ,"JST", "yyyy/MM/dd HH:mm:ss") 24 //msgDATA.Date = Utilities.formatDate(new Date(message.getDate()), "JST", "yyyy/MM/dd HH:mm") 25 msgDATA.subuject = message.getSubject() 26 msgDATA.from = message.getFrom() 27 msgDATA.num = message.getAttachments().length 28 29 30 var tgtFolder = folder.createFolder( msgDATA.Date) 31 msgDATA.folderurl = tgtFolder.getUrl() 32 var tgtFolderID = tgtFolder.getId() 33 const attachments = message.getAttachments(); 34 for(const attachment of attachments){ 35 var tgt = folder.createFile(attachment) 36 tgt.moveTo(DriveApp.getFolderById(tgtFolderID)); 37 } 38 39 var tgtDATA = [[msgDATA.Date,msgDATA.from, msgDATA.subuject, msgDATA.num, msgDATA.folderurl, msgDATA.ID]] 40 ssheet.getRange(ssheet.getLastRow()+1, 1, 1, 6).setValues(tgtDATA) 41 } 42 } 43 Logger.log(msgDATA) 44} 45} 46 47/////////////////////関数置き場 48function getTargetThreads(address){ 49 var now = new Date(); 50 var before5min_unix = now.getTime() - 300000; //ミリ秒なので(300秒*1000) 51 var test = Math.floor(before5min_unix/1000); 52 var before5min = new Date(before5min_unix); 53 54 const SEARCH_TERM = ['from:('+address+') has:attachment','after:'+test.toString()].join("\u0020"); 55 const threads = GmailApp.search(SEARCH_TERM, 0, 50); 56 const messagesForThreads = GmailApp.getMessagesForThreads(threads); 57 return messagesForThreads 58 59} 60 61

試したこと

カッコの対応は確認しましたがあっているようです.

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

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

Lhankor_Mhy👍を押しています

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

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

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

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

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

nekoniki

2020/10/20 01:58

エラーの内訳はないのでしょうか? 単に「構文エラー」と表示されるわけではなく、「何行目のどのあたりが・・・」のように表示されると思うのですが。
Lhankor_Mhy

2020/10/20 02:01

おそらく GAS だと思いますので、タグの追加を検討されてはいかがですか?
Kodanosuke

2020/10/20 02:41

ありがとうございます. 記載が漏れておりました. 9行目にエラーが出ます.↓のコードです. const pastData = tmppastData.reduce((pre,current) => {pre.push(...current);return pre},[])
Lhankor_Mhy

2020/10/20 02:53

ランタイムエンジンは、V8に切り替わっていますか?
guest

回答2

0

Caution: ES6 modules are not yet supported.

V8 Runtime Overview  |  Apps Script  |  Google Developers

とのこと。スプレッド構文は ES6 からだったと記憶していますので、使えないのかもしれません。

投稿2020/10/20 03:08

Lhankor_Mhy

総合スコア36115

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

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

0

ベストアンサー

9行目にエラーとのことなので見てみましたが、構文としては間違って無さそうです。
コメントでも指摘がありますが、あるとすればアロー関数で引っかかっているのだと思います。
その場合、ランタイムをv8に切り替えているかを確認してください。

投稿2020/10/20 02:54

nekoniki

総合スコア2409

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問