紛争:グーグルのOAuth2のJavaコンタクトサービス - 私は、次の手順を使用してoath2で使用するための私のWebアプリケーションを登録したドキュメント
http://code.google.com/apis/accounts/docs/OAuth2.html
これは私のクライアントは、クライアントのIDを使用して作成されることを意味、クライアントシークレットとリダイレクトURI。
私はJSONで来る私は、アクセストークンを要求するために使用できるGoogleからのリクエストパラメータのコードを、受け取る
http://code.google.com/apis/accounts/docs/OAuth2WebServer.html
あたりのように私は自分のWebアプリケーションを設定したら
{ "access_tokenは": "1/fFAGRNJru1FTz70BzhT3Zg"、 "expires_in":3920、 "TOKEN_TYPE": "ベアラ"
}の線に沿ってフォーマットこれが完了すると、私は、ユーザーに代わってGoogleのAPIにアクセスするためのアクセストークンを使用することができます。
文書としてhttps://www.googleapis.com/oauth2/v1/userinfo?access_token=1/fFBGRNJru1FQd44AzqT3Zg
これをGET単にリクエストパラメータとしてアクセストークンを渡すことによって行われます。
私は(この場合、Googleの連絡先)のJava APIを使用して上に移動するときしかし、私はHMAC-SHA1のドキュメントに以下を得る:RSA-SHA1
GoogleOAuthParameters oauthParameters = new GoogleOAuthParameters();
oauthParameters.setOAuthConsumerKey(CONSUMER_KEY);
oauthParameters.setOAuthConsumerSecret(CONSUMER_SECRET);
oauthParameters.setOAuthToken(ACCESS_TOKEN);
PrivateKey privKey = getPrivateKey("/path/to/your/rsakey.pk8"); // See above for the defintion of getPrivateKey()
DocsService client = new DocsService("yourCompany-YourAppName-v1");
client.setOAuthCredentials(oauthParameters, new OAuthRsaSha1Signer(privKey));
URL feedUrl = new URL("https://docs.google.com/feeds/default/private/full");
DocumentListFeed resultFeed = client.getFeed(feedUrl, DocumentListFeed.class);
for (DocumentListEntry entry : resultFeed.getEntries()) {
System.out.println(entry.getTitle().getPlainText());
}
ため
GoogleOAuthParameters oauthParameters = new GoogleOAuthParameters();
oauthParameters.setOAuthConsumerKey(CONSUMER_KEY);
oauthParameters.setOAuthConsumerSecret(CONSUMER_SECRET);
oauthParameters.setOAuthToken(ACCESS_TOKEN);
oauthParameters.setOAuthTokenSecret(TOKEN_SECRET);
DocsService client = new DocsService("yourCompany-YourAppName-v1");
client.setOAuthCredentials(oauthParameters, new OAuthHmacSha1Signer());
URL feedUrl = new URL("https://docs.google.com/feeds/default/private/full");
DocumentListFeed resultFeed = client.getFeed(feedUrl, DocumentListFeed.class);
for (DocumentListEntry entry : resultFeed.getEntries()) {
System.out.println(entry.getTitle().getPlainText());
}
または、次の
まず、Javaラッパーではなく標準のhttpを実行していたら、私が提供する必要があるのはアクセストークンだけです。何か不足しているのですか?主にTOKEN_SECRET、ドキュメンテーションには言及されていません。また、CONSUMER_KEYとCONSUMER_SECRETを指定する必要はありません。私は彼らがクライアントIDとクライアントの秘密の代替名であると推測していますが、私は今なぜそれらを提供しなければならないのか分かりません。最後に、Google APIのコンソールを使用してアプリケーションを設定するときに、2つの異なる暗号化タイプについて何も言及されていませんでした。
Oauthを使用しない実例がリンクされていますが、その下にOauth 2.0を使用するよう指示されています。ステップ6「アプリケーションはユーザーデータを要求します。リクエスト。"例は示していません。次に、その下にはオアウの例はありません。私が指示するOauth 2.0のページでは、それはまっすぐなhttpを使用する例を示しており、java apisは使用していません。もう一度Googleを混乱させる。 – mogronalol