2012-01-23 1 views
1

Теперь я попытался выполнить базовую реализацию Java-кода для XOAUTH и Gmail, и я продолжаю сталкиваться с популярной ошибкой «Недопустимая учетная запись». Есть ли известное решение, так как я не могу найти что-либо в Интернете. Пожалуйста, смотрите ниже мой код:Вопросы XOAUTH GMAIL

КОД:

public class Oauth { 

private static final String SCOPE = "https://mail.google.com/"; 

private static final String CONSUMER_KEY = "anonymous"; 
private static final String CONSUMER_SECRET = " anonymous "; 
private static final String USER_EMAIL = "[email protected]"; 

public static void main(String[] args) throws Exception { 

    GoogleOAuthParameters oauthParameters = new GoogleOAuthParameters(); 
    oauthParameters.setOAuthConsumerKey(CONSUMER_KEY); 

    oauthParameters.setOAuthConsumerSecret(CONSUMER_SECRET); 
    OAuthSigner signer = new OAuthHmacSha1Signer(); 

    GoogleOAuthHelper oauthHelper = new GoogleOAuthHelper(signer); 

    oauthParameters.setScope(SCOPE); 

    oauthHelper.getUnauthorizedRequestToken(oauthParameters); 

    String requestUrl = oauthHelper.createUserAuthorizationUrl(oauthParameters); 
    System.out.println(requestUrl); 
    System.out.println("Please visit the URL above to authorize your OAuth " 
      + "request token. Once that is complete, press any key to " 
      + "continue..."); 
    System.in.read(); 

    String token = oauthHelper.getAccessToken(oauthParameters); 
    System.out.println("OAuth Access Token: " + token); 
    System.out.println(); 

    //IMAP 
    XoauthAuthenticator.initialize(); 

    IMAPSSLStore imapSslStore = XoauthAuthenticator.connectToImap("imap.googlemail.com ", 
      993, 
      USER_EMAIL, 
      oauthParameters.getOAuthToken(), 
      oauthParameters.getOAuthTokenSecret(), 
      new OAuthConsumer(null, CONSUMER_KEY, CONSUMER_SECRET, null), 
      true); 
    System.out.println("Successfully authenticated to IMAP.\n"); 
} 

} 

Пожалуйста, сообщите о вашей мысли, а также быть в курсе, что я попытался использовать реальный ключ потребителя и секрет с той же ошибкой, см ниже для исключения :

ОШИБКА:

A1 NO [ALERT] Invalid credentials (Failure) Exception in thread "main" javax.mail.AuthenticationFailedException: [ALERT] Invalid credentials (Failure) at com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:660) at javax.mail.Service.connect(Service.java:295) at GMAILP.XoauthAuthenticator.connectToImap(XoauthAuthenticator.java:106) at com.google.code.samples.xoauth.Oauth.main(Oauth.java:49)

класс OAuth был использован с другими стандартными классами XoauthAuthenticator.java, XoauthProtocol.java, и т.д. в пределах того же пакета, как показано в java sample zip

Пожалуйста, вы можете посоветовать по этому исключению я столкнулся, как его похожим на протокол Gmail OAuth выглядит более сложным, чем я ожидал, я просто хочу, чтобы программно подключиться к пользователю электронной почты (после авторизации) и получить электронной почты для дальнейшего анализа, и я решил использовать Gmail из-за открытой платформы.

Я признателен за реализацию Java-эквивалента файла xoauth.py (See this), поскольку я не знаю питона, пожалуйста, сообщите о своей мысли.

Уважением,

ответ

0

Добавить Thread.Sleep(3000) после getFolder("Inbox"); и inbox.open(Folder.READ_ONLY);

После этого он работает для меня.

1

я получаю ту же проблему, а затем убедились, что обмен с Gmail был точно так, как показано на this example

т.е. отправки запроса на способность к серверу, а также используя одни и те же метки (например, A01) и его работал на меня.