· 8 years ago · Jan 09, 2017, 03:02 PM
1Caused by: com.github.scribejava.core.exceptions.OAuthException: Response body is incorrect. Can't extract token and secret from this: 'oauth_problem=signature_invalid'
2 at com.github.scribejava.core.extractors.AbstractOAuth1TokenExtractor.extract(AbstractOAuth1TokenExtractor.java:42)
3 at com.github.scribejava.core.extractors.AbstractOAuth1TokenExtractor.extract(AbstractOAuth1TokenExtractor.java:32)
4 at com.github.scribejava.core.extractors.AbstractOAuth1TokenExtractor.extract(AbstractOAuth1TokenExtractor.java:19)
5 at com.github.scribejava.core.oauth.OAuth10aService.getRequestToken(OAuth10aService.java:51)
6
7OAuth10aService service = new ServiceBuilder().apiKey(consumerKey).apiSecret(consumerSecret)
8 .signatureType(SignatureType.QueryString)
9 .build(new CustomApi(oauthUrl, username, password));
10final OAuth1RequestToken requestToken = service.getRequestToken();
11String authUrl = service.getAuthorizationUrl(requestToken);
12final OAuth1AccessToken accessToken = service.getAccessToken(requestToken, authUrl);
13
14final OAuthRequest request = new OAuthRequest(Verb.GET, apiUrl + url, service.getConfig());
15service.signRequest(accessToken, request); // the access token from step 4
16final Response response = request.send();
17System.out.println(response.getBody());
18
19public class CustomApi extends DefaultApi10a {
20
21 private static final String REQUEST_TOKEN_URL = "/oauth/initiate?oauth_callback=oob";
22 private static final String AUTHORIZE_URL = "/oauth/authorize/customerVerifier/?oauth_token=%s&username=%s&password=%s";
23 private static final String ACCESS_TOKEN_URL = "/oauth/token";
24
25 public CustomApi(String baseUrl, String username, String password) {
26 this.baseUrl = baseUrl;
27 this.username = username;
28 this.password = password;
29 }
30
31 private String baseUrl;
32 private String username;
33 private String password;
34
35 @Override
36 public String getRequestTokenEndpoint() {
37 return baseUrl + REQUEST_TOKEN_URL;
38 }
39
40 @Override
41 public String getAuthorizationUrl(OAuth1RequestToken requestToken) {
42 return String.format(baseUrl + AUTHORIZE_URL, requestToken.getToken(), username, password);
43 }
44
45 @Override
46 public String getAccessTokenEndpoint() {
47 return baseUrl + ACCESS_TOKEN_URL;
48 }
49
50}