2017-03-06 49 views
0

下面的deleteOldGmail()函數每週運行一次。它在幾年內沒有問題地運行,然後在2016年的某個時間(十月,我認爲)我開始獲得如下所示的故障消息,即使我對腳本進行了零改變。失敗通知表明'執行該操作需要'deleteOldGmail授權';然而,我已經執行腳本中的每個函數來檢查/重新建立授權,並且當我運行每個函數時我得到零錯誤。我的Google腳本失敗了。授權問題?解決它的建議?

失敗通知:


對谷歌Apps腳本的失敗摘要:deleteOldGmail < - 這是在主題領域。

錯誤消息: 您的腳本deleteOldGmail最近未能成功完成。下面顯示了故障摘要。要爲此腳本配置觸發器,或更改您的設置以接收將來的失敗通知,請單擊此處。

啓動功能錯誤消息觸發器結束 2/27/17 12:20 AM deleteOldGmail執行該操作需要授權。基於時間的17年2月27日上午12:20 此致 谷歌Apps腳本


基於在這個論壇上,我已經執行的每個功能逐一解決相關腳本授權的權利可能存在的問題提出建議。我得到零運行時錯誤;一切似乎運行良好。

功能描述: 1)deleteOldGmail調用兩個其他函數:deleteOldInboxMsgs和deleteOldPromotionMsgs。簡而言之,這些腳本是爲刪除舊電子郵件而編寫的。 'mySearch'中的過濾器用於確保我不會刪除舊電子郵件,如果我將其發送給我自己,或者郵件中包含「許可證」,「註冊」,「確認」等關鍵字詞。

2)當每個函數完成時,它的最後一個動作是發送一個消息,指示'執行的函數'。我收到所有這些消息沒有錯誤。這些腳本似乎在每個星期一的午夜之後成功運行一點;然而,每個星期一晚上7:28 PM會有一個錯誤摘要。

下面顯示的完整腳本。用abc.xyz.com代替腳本中使用的真實電子郵件地址。


function deleteOldGmail() { 
    deleteOldInboxMsgs(); 
    deleteOldPromotionMsgs(); 
    GmailApp.sendEmail("[email protected]", "deleteOldGmail function completed...", "...the code for this function is in the googleScripts folder of your Google Drive"); 
} 

function deleteOldInboxMsgs() { 
    var mySearch = "is:inbox is:unread older_than:700d -from:me -confirmation -account -license -registrar -registration -'serial number'"; 
    var batchSize = 100; // Process up to 100 threads at once 
    GmailApp.sendEmail("[email protected]", "deleteOldInboxMsgs function executed", " "); 
    while (GmailApp.search(mySearch, 0, 1).length == 1) 
    { 
    GmailApp.moveThreadsToTrash(GmailApp.search(mySearch, 0, batchSize)); 
    } 
} 


function deleteOldPromotionMsgs() { 
    var mySearch = "older_than:180d category:promotions -from:me -confirmation -account -license -registrar -registration -'serial number'";// add promotion msgs to the list 
    var batchSize = 100; // Process up to 100 threads at once 
    while (GmailApp.search(mySearch, 0, 1).length == 1) 
    { 
    GmailApp.moveThreadsToTrash(GmailApp.search(mySearch, 0, batchSize)); 
    } 
    GmailApp.sendEmail("[email protected]", "deleteOldPromotionMsgs function executed", " "); 

我有一個很難找出什麼是真正失敗。除了運行每個功能之外,還有其他方法可以重新建立或驗證「授權」嗎?有什麼建議麼?

感謝,

邁克

回答

1

從谷歌雲狀態信息中心上週:

「沒有變化,從上次更新報告中,我們還在積極努力解決問題與身份/身份驗證。當有重大進展需要報告時,將會進行更新。

總結;一些長期存在的OAuth令牌無意中無效。 「

Imyself不得不重新授權我的幾個長時間運行的腳本。

+0

感謝您的答覆斯賓塞。是否有可能重新授權我的腳本的方法...或再授權逐個重新運行功能爲一些人工作,而不是爲其他人工作?在過去的幾個月中,我已經多次重新運行我的功能。 – Mikeism

+0

截至目前,它似乎運行沒有問題,但你仍然收到關於'Authorization is required'的電子郵件? –

+0

無法刪除目標電子郵件,但每個函數運行時都不會拋出錯誤信息,我將修改過濾器以刪除一組特定的測試郵件以進行確認。 – Mikeism