2012-10-28 96 views
0

最近我一直在使用Google Apps腳本工作很多,但有一點對我來說仍然很不清楚,文檔根本沒有提示:更改腳本 - 升級路徑時,Google Apps腳本授權會丟失?

將腳本作爲WebApp發佈時(訪問:Anyone,作爲:User accessing the WebApp)和要求權限(例如GMailApp訪問,UserPropertiesTrigger),然後改變該腳本(但不要求任何額外的權限,只是改變代碼),並再次發佈,似乎觸發器由用戶授權的腳本運行失去他們的授權(例如,用戶從該腳本獲得具有失敗消息的電子郵件:Authorization is required to perform that action.)。

我讀過關於基於它們的版本是獨立的庫,但從庫中訪問GMailApp或庫中的Trigger是不可能的,因爲它需要活動用戶?有沒有辦法解決?什麼是建議的升級路徑,例如如何對腳本進行(代碼)更改而不會使現有用戶失敗?

回答

0

有些服務--gmailApp和mailApp肯定會被Google視爲敏感問題,因此對代碼進行任何修改,即使是非常小的更改,都意味着授權的延期。我現在完全記不起我在哪裏閱讀這些信息,但我非常確定自己閱讀了它(!),並且在本論壇中我也看到了它作爲Google員工的答案。請原諒我對參考文獻不準確。 無論如何...這解釋了爲什麼你的腳本和AFAIK有這些授權問題,所以無法避免這個過程。也就是說,您的用戶應該獲得授權屏幕,而不是他們在您的應用中使用的服務的錯誤消息。 如果您在應用程序中使用觸發器(當然是您自己設置的),那麼您應該手動運行這些函數以通過授權,因爲觸發器是在創建它們的權限下執行的,無論您的web應用程序如何發佈。 我希望我很清楚,如果不是指the doc about installable triggersthis doc also.

+0

我明白了。自己運行這些函數是不可能的,因爲我需要在它們內部訪問GMail,但是現在知道任何代碼更改都會觸發重新授權,這隻會讓升級腳本的方法只有一種:一旦它被髮布,永遠不會再碰它代碼更改必須在重新發布已更正的腳本中發生。 – Joscha