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]無効な資格情報(Failure)スレッド "main"の例外javax.mail.AuthenticationFailedException:[ALERT]無効な資格情報(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は、javaサンプルzipに表示されているのと同じパッケージ内で、他の標準クラスXoauthAuthenticator.java、XoauthProtocol.javaなどとともに使用されました。
Gmail Oauthプロトコルが予想よりも難しいように見えるため、私が直面しているこの例外についてアドバイスしてください。プログラムでユーザーのメールに接続し(承認後)、さらに分析するためにメールを取得したいと思います。プラットフォームが開いているため、Gmailを使用することにしました。
私はPythonの知識がないので、xoauth.pyファイル(これを参照)と同等のJavaを実装しようとしています。あなたの考えをアドバイスしてください。
敬具、