שאלה | עזרה בAPI של גימייל
-
אני רוצה לקבל אתתוכן ההודעה האחרונה בכל שרשור של הודעות מייל, הבעיה שלא מצאתי את זה מפורש בתיעוד, יש רק דרך לחלץ את ההודעות מהשרשור, וכשאני מוציא זה מביא לי רק את הודעה הראשונה.
זה הקטע שמביא את ההודעה הראשונה
// Log the subjects of the messages in the thread var firstThread = GmailApp.getInboxThreads(0,1)[0]; var messages = firstThread.getMessages(); for (var i = 0; i < messages.length; i++) { Logger.log(messages[i].getSubject()); }
-
@מוטי-מן בשורה 3 אתה ממלא משתנה בשם
messages
במערך של הודעות.
אתה פשוט צריך לקבל את האיבר האחרון במערך הזה (בתוך הלולאה שמתחילה בשורה 4. או בכלל לא בלולאה).
תעשה גוגל איך מקבלים את הערך האחרון מתוך מערך ב-JS (אתה יכול פשוט לפנות לאינדקס שלו עם הפחתה של -1 מה-length
של המערך. או יותר נכון לעשות זאת עםslice
. המתודהpop
מחזירה גם כן את האיבר האחרון של המערך - אבל היא דורסת את המערך המקורי ויכול להיות שזה לא טוב בשבילך).// Log the subjects of the messages in the thread var firstThread = GmailApp.getInboxThreads(0,1)[0]; var messages = firstThread.getMessages(); var last_message = messages.slice(-1) // this is the last message, do with it whatever you want
-
@chv זה לא עובד לי, אני מנסה לעשות את זה על הקוד הזה שלקחתי מכאן
let label = GmailApp.getUserLabelByName(tag) let messages = label.getThreads() if (messages.length > 0) { for (let message of messages) { let firstmessage = message.getMessages()[0] let subject = firstmessage.getSubject() let sender = firstmessage.getFrom() let to = firstmessage.getTo()
זה מחלץ הודעות מייל ושולח אותם למערכת בימות, אבל הבעיה שם שזה שולח רק את ההודעה הראשונה בשרשור ואני רוצה לשלוח את האחרונה כל פעם...
-
@משחזר-מידע זה בדיוק מה שאני שואל איך אפשר לבחור את ההודעה האחרונה ולא את הראשונה..
-
@מוטי-מן "זה לא עובד לי" אינה תשובה... במיוחד שהבאת רק את הקטע קוד המקורי ולא את מה שניסית לעשות
@משחזר-מידע אמר בשאלה | עזרה בAPI של גימייל:
לכאורה תצטרך לעשות לולאה עד שתגיע לאחרון
אאכ יש API מיוחד לקבל את האחרוןgetMessages מחזיר מערך, אז אפשר לקבל את האורך שלו ע"י
length
וכך לגשת ישירות לאחרון. (ראה בהרחבה בתשובה של @chv) -