3

私はこのサイトをまったく初めて使用します。私は自分の問題に対する答えを探していました。しかし、このウェブサイトで誰かが尋ねた同じ問題を見ました。質問は ここ にあります。私はWindows 7を使用しています。そのリンクで回答が得られなかったので、同じ質問を再度尋ねています。Java アプリケーションからブラウザーで Gmail アカウントのリンクを開きたいです。はい、デスクトップクラスのbrowse()メソッドについて知っています。問題は、Gmail Web サイトを開くことができるということですが、ユーザー名とパスワードが提供されている間に、指定された Gmail アカウントを直接開く必要があります。何か案は?

4

1 に答える 1

0

わかりましたので、いくつか注意点があります: 1. Google API を最後に使ったのは古いバージョンだったので、今はかなり違うかもしれません。 2. このコードはテストされていません。ただ書いているだけです。一部は記憶から、一部は私の古いプロジェクトから。疑似コードのようなものだと考えてください。3. これがたまたま機能する場合、これはかなり汚い解決策です。これにより、API を使用してこれを行うためのより良い方法を見つけることができれば幸いです。

GoogleOAuthParameters oauthParameters = new GoogleOAuthParameters();
oauthParameters.setOAuthConsumerKey( [insert consumer key here] );

oauthParameters.setOAuthConsumerSecret( [insert consumer secret here] );
OAuthSigner signer = new OAuthHmacSha1Signer();

GoogleOAuthHelper oauthHelper = new GoogleOAuthHelper(signer);

oauthParameters.setScope("https://mail.google.com/mail");  //no clue if this is a valid scope or not

oauthHelper.getUnauthorizedRequestToken(oauthParameters);
String requestUrl = oauthHelper.createUserAuthorizationUrl(oauthParameters);

Desktop desktop = Desktop.getDesktop();
URI url;
url = new URI(requestUrl);
//this will make the user log in to authorize your app
desktop.browse(url);

//auth token response from Google, you can use this to authenticate your app if there are other requests you want to make against the user account
String token = oauthHelper.getAccessToken(oauthParameters);

//since you made sure the user is logged into their account to authorize your app, their gmail can now just be opened.  Yes, very dirty.  I know. (if it all works)
desktop.browse("https://www.gmail.com/");
于 2012-12-13T20:24:48.853 に答える