1

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を実装しようとしています。あなたの考えをアドバイスしてください。

敬具、

4

2 に答える 2

1

私は同じ問題を抱えていたので、gmail との交換がこの例に示されているとおりであることを確認しました。

つまり、機能要求をサーバーに送信し、まったく同じタグ (A01 など) を使用すると、うまくいきました。

于 2012-06-09T00:23:05.297 に答える
0

Thread.Sleep(3000)の後に追加しgetFolder("Inbox");inbox.open(Folder.READ_ONLY);

これを行った後、それは私のために働いています。

于 2012-03-17T04:52:53.903 に答える