2012-11-27 17 views
2

我的目標是從特定帳戶獲取電子郵件並將其作爲公告發布到網站上。我已經完成了這個。然而,有一種獨特的情況,即帶有附加信息的電子郵件將以相同的主題顯示(主題是帖子的標題)。我需要取出這張照片並將其作爲公告發布。但是,createAnnouncements會引發錯誤,指出該帖子已存在。不過,我可以手動發佈兩個相同標題的帖子。無法使用Google Apps腳本中的createAnnouncements發佈相同標題的公告

我已經嘗試了許多事情,如getAnnouncements和getAllDecedents,但沒有任何服務我的目的或接近它。

有沒有一種方法我可以刪除舊的帖子,並創建新的帖子還是有辦法我可以使用createAnnouncements發佈相同的標題的消息?任何在這方面的幫助將非常感激。

我已經在下面加入了我的代碼藥水。

 var pageTitlePattern = /^\[.*\] \[/; 
     var pageTitleArray = pageTitlePattern.exec(messageSubject); 
     var pageTitle = pageTitleArray[0].substr(1,pageTitleArray[0].length - 4); 

     var messageIdPattern = /\] \[.*\]$/; 
     var messageIdArray = messageIdPattern.exec(messageSubject); 
     var messageId = messageIdArray[0].substr(3,messageIdArray[0].length - 4); 
     var postBody = formatMessage(message, false) + "<br>" + "<font color=\"#ffffff\">" + messageId + "</font>"; 
     var newAccouncement = postPage.createAnnouncement(pageTitle, postBody); 
     var files = message.getAttachments(); 
     for (var k = 0; k < files.length; k++) { 
     newAccouncement.addHostedAttachment(files[k]); 
     cabinetPage.addHostedAttachment(files[k]); 
     } 
     message.markRead(); 

回答

0

手動創建具有相同名稱的多個公告的帖子,站點UI自動爲公告通過附加一個連字符和一個整數獨特的路徑。

舉例來說,如果你創建了兩個帖子,標題爲「TestPost」,你將這些網頁添加到您的網站:

https://sites.google.com/site/--site-id--/announcements/testpost 
https://sites.google.com/site/--site-id--/announcements/testpost-1 

我建議你有你的腳本執行類似。

... 
var pageTitlePattern = /^\[.*\] \[/; 
var pageTitleArray = pageTitlePattern.exec(messageSubject); 
var pageTitle = pageTitleArray[0].substr(1,pageTitleArray[0].length - 4); 

// Check if this pageTitle already used 
var announcements = page.getAnnouncements({ 
             includeDrafts: false, 
             includeDeleted: false, 
             search: pageTitle }); 
// If other announcements have already used this pageTitle, 
// make ours unique by appending a hyphen and unique number 
if (announcements.length > 0) { 
    pageTitle += '-' + announcements.length; 
} 
... 

page.getAnnouncements()搜索不區分大小寫,並找到與字符串pageTitle在標題或文本的任何地方所有公告。這可能比你想要的更具包容性。在這種情況下,另一種方法是使用this variant of createAnnouncement()接管您的公告頁name的創建。

相關問題