我正在使用Email Audi API以加密形式下载用户的邮箱..当我将代码写入谷歌脚本并尝试运行时,它会出现错误504:超时错误..当我使用OAuth游乐场时,我成功了下载邮箱..所以请给我一些建议来解决这个问题。
Code :
function downloadMailBox(user){
var user='user@mydomain.com'
var base='https://apps-apis.google.com/a/feeds/compliance/audit/'
var fetchArgs=googleOAuth_('google',base)
var userID=user.split('@')[0]
//Logger.log(userID)
var rawXml='<atom:entry xmlns:atom="http://www.w3.org/2005/Atom" xmlns:apps="http://schemas.google.com/apps/2006">'+
'<apps:property name="packageContent" value="FULL_MESSAGE"/></atom:entry>'
fetchArgs.payload=rawXml
var uriForMailbox=base+'mail/export/mydomain.com/'+userID
UrlFetchApp.fetch(uriForMailbox,fetchArgs)
}
function googleOAuth_(name,scope) {
var oAuthConfig = UrlFetchApp.addOAuthService(name);
oAuthConfig.setRequestTokenUrl("https://www.google.com/accounts/OAuthGetRequestToken?scope="+scope);
oAuthConfig.setAuthorizationUrl("https://www.google.com/accounts/OAuthAuthorizeToken");
oAuthConfig.setAccessTokenUrl("https://www.google.com/accounts/OAuthGetAccessToken");
oAuthConfig.setConsumerKey("mydomain.com");
oAuthConfig.setConsumerSecret(consumersecret);
return {oAuthServiceName:name,
oAuthUseToken:"always",
contentType:'application/atom+xml',
method:'POST'
};
}
答案 0 :(得分:0)
经过多长时间,您收到错误?谷歌的脚本执行时间限制约为5分钟。任何花费时间超过此时间的脚本都会超时。还有其他限制。您可以查看Apps Script Dashboard上的详细信息。
答案 1 :(得分:0)
我找到了一个这样的解决方案...我刚刚将上面的代码写入了try-catch块。随着超时错误的到来,它会进入catch块,我再次调用函数downloadmailBox()。(有时脚本执行正常并且有时会出错。)它会一次又一次地调用此函数,直到获得成功。可能它在2或3次尝试中获得成功......所以通过这种方式,可以解决超时问题。