2011-08-30 3 views
2

gdata APIサンプルコードの実行中に以下のエラーが発生します。私はAPIに新しいです。同じ決議をお知らせください。私がキャプチャを置く必要がある場所と方法。

SEVERE: Authentication Error: Captcha required com.google.gdata.client.GoogleService$CaptchaRequiredException: Captcha required at com.google.gdata.client.GoogleAuthTokenFactory.getAuthException(GoogleAuthTokenFactory.java:623) at com.google.gdata.client.GoogleAuthTokenFactory.getAuthToken(GoogleAuthTokenFactory.java:500) at com.google.gdata.client.GoogleAuthTokenFactory.setUserCredentials(GoogleAuthTokenFactory.java:346) at com.google.gdata.client.GoogleService.setUserCredentials(GoogleService.java:362) at com.google.gdata.client.GoogleService.setUserCredentials(GoogleService.java:317) at com.google.gdata.client.GoogleService.setUserCredentials(GoogleService.java:301) at com.google.gdata.client.appsforyourdomain.audit.AuditService.(AuditService.java:77) at AuditSampleClient.main(AuditSampleClient.java:100)

import java.util.Calendar; 
import java.util.Properties; 

import com.google.gdata.client.appsforyourdomain.audit.AuditService; 
import com.google.gdata.client.appsforyourdomain.audit.MailBoxDumpRequest; 
import com.google.gdata.data.TextConstruct; 
import com.google.gdata.data.appsforyourdomain.AppsForYourDomainException; 
import com.google.gdata.data.appsforyourdomain.generic.GenericEntry; 
import com.google.gdata.util.AuthenticationException; 
import com.google.gdata.util.ServiceException; 

public class google_data { 

    /** 
    * @param args 
    */ 
    public static void main(String[] args) { 
     // TODO Auto-generated method stub 

      export_data(); 
    } 
    public static void export_data() 
    { 
     MailBoxDumpRequest request = new MailBoxDumpRequest(); 
     request.setAdminEmailAddress("-----"); 
     request.setUserEmailAddress("----------"); 

     Calendar beginDate = Calendar.getInstance(); 
     beginDate.set(2011, Calendar.AUGUST, 1, 4, 30); 
     request.setBeginDate(beginDate.getTime()); 

     Calendar endDate = Calendar.getInstance(); 
     endDate.set(2011, Calendar.AUGUST, 30, 20, 0); 
     request.setEndDate(endDate.getTime()); 

     request.setIncludeDeleted(true); 
     request.setSearchQuery("in:chat"); 
     request.setPackageContent("FULL_MESSAGE"); 

     AuditService service = null; 
     try { 
      service = new AuditService("-----", "------", "------", "-------auditapp-v1"); 
     } catch (AuthenticationException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
     GenericEntry mailboxDumpEntry = null; 
     try { 
      mailboxDumpEntry = service.createMailboxDumpRequest(request); 
     } catch (AppsForYourDomainException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } catch (MalformedURLException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } catch (ServiceException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

     TextConstruct requestId = mailboxDumpEntry.getSummary(); 
     System.out.println(requestId.toString()); 
     //String status = mailboxDumpEntry.getStatus(); 
     //String numberOfFiles = mailboxDumpEntry.getNumberOfFiles(); 
    } 

} 

答えて

2

それが言うまさに意味 - サービスは、あなたがもう一度、自動ログインを使用する前にCAPTCHAを解決するために、ユーザが必要となります。

例外には、関連するCAPTCHAのURLが含まれている必要があります。 client loginユーザーガイドから:

A failure response from ClientLogin contains an error code and a URL to an error page that can be displayed to the user. If the error code is a CAPTCHA challenge, the response also includes a URL to a CAPTCHA image and a special token. Your application should be able to solicit an answer from the user and then retry the login request.

URLはgetCaptchaUrl()方法で入手することができます。