0

Email Audi APIを使用して、暗号化された形式でユーザーのメールボックスをダウンロードしています。Googleスクリプトにコードを書き込んで実行しようとすると、エラー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'
  }; 

}
4

2 に答える 2

0

どれくらいの時間が経過すると、エラーが発生しますか?Googleには、約5分のスクリプト実行時間制限があります。これよりも時間がかかるスクリプトは、タイムアウトになります。他にも制限があります。詳細は、AppsScriptDashboardで確認できます。

スクリプトを最適化するか、操作を小さなバッチで中断する必要があります。Googleスクリプトを最適化するためのヒントをいくつか紹介します。 Link#1 Linkk#2

于 2012-10-31T11:54:10.923 に答える
0

これに対する1つの解決策を見つけました...上記のコードをtry-catchブロックに書き込んだだけです..タイムアウトエラーが発生すると、上記の関数downloadmailBox()を再度呼び出しているcatchブロックに移動します(スクリプトが正しく実行される場合と、エラー)。成功するまで、この関数を何度も呼び出します。おそらく2、3回の試行で成功するでしょう...したがって、このようにすることで、タイムアウトの問題を解決できます。

于 2012-11-01T11:48:15.233 に答える