我现在已经尝试了 XOAUTH 和 Gmail 代码的基本 java 实现,并且我不断遇到流行的“无效凭据错误”。有没有已知的解决方案,因为我似乎无法在网上找到任何东西。请参阅下面的代码:
代码:
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 = "useremail@gmail.com";
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] 无效凭据(失败)线程“主”javax.mail.AuthenticationFailedException 中的异常:[ALERT] com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:660) 处的无效凭据(失败) javax.mail.Service.connect(Service.java:295) 在 GMAILP.XoauthAuthenticator.connectToImap(XoauthAuthenticator.java:106) 在 com.google.code.samples.xoauth.Oauth.main(Oauth.java:49)
Oauth 类与其他标准类 XoauthAuthenticator.java、XoauthProtocol.java 等在同一个包中使用,如java 示例 zip中所示
请您就我面临的这个异常提供建议,因为它看起来像 Gmail Oauth 协议看起来比我预期的要困难,我只想以编程方式连接到用户的电子邮件(在授权之后)并检索电子邮件以进行进一步分析,我由于它的开放平台,决定使用Gmail。
我确实希望实现一个与 xoauth.py 文件等效的 java(请参阅此文件),因为我不了解 python,请告知您的想法。
亲切的问候,