From 581e2b6d84a2bd8235b604211d87074fad4e9a91 Mon Sep 17 00:00:00 2001 From: diegossilveira Date: Thu, 10 Feb 2011 17:03:28 -0200 Subject: [PATCH] Changed the getAccessToken() method implementation to conform to the OAuth 2.0 server-side flow --- .../org/scribe/oauth/OAuth20ServiceImpl.java | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/scribe/oauth/OAuth20ServiceImpl.java b/src/main/java/org/scribe/oauth/OAuth20ServiceImpl.java index a81dc88..86407de 100644 --- a/src/main/java/org/scribe/oauth/OAuth20ServiceImpl.java +++ b/src/main/java/org/scribe/oauth/OAuth20ServiceImpl.java @@ -1,7 +1,12 @@ package org.scribe.oauth; -import org.scribe.builder.api.*; -import org.scribe.model.*; +import org.scribe.builder.api.DefaultApi20; +import org.scribe.model.OAuthConfig; +import org.scribe.model.OAuthConstants; +import org.scribe.model.OAuthRequest; +import org.scribe.model.Response; +import org.scribe.model.Token; +import org.scribe.model.Verifier; public class OAuth20ServiceImpl implements OAuthService { @@ -35,7 +40,13 @@ public class OAuth20ServiceImpl implements OAuthService */ public Token getAccessToken(Token requestToken, Verifier verifier) { - throw new UnsupportedOperationException("Unsupported operation, please use 'getAuthorizationUrl' and redirect your users there"); + OAuthRequest request = new OAuthRequest(api.getAccessTokenVerb(), api.getAccessTokenEndpoint()); + request.addQuerystringParameter(OAuthConstants.CLIENT_ID, config.getApiKey()); + request.addQuerystringParameter(OAuthConstants.CLIENT_SECRET, config.getApiSecret()); + request.addQuerystringParameter(OAuthConstants.CODE, verifier.getValue()); + request.addQuerystringParameter(OAuthConstants.REDIRECT_URI, config.getCallback()); + Response response = request.send(); + return api.getAccessTokenExtractor().extract(response.getBody()); } /**