Note that there are some explanatory texts on larger screens.

plurals
  1. POMagento Rest Oauth API (Signature Invalid) 401
    primarykey
    data
    text
    <p>I get a Signature invalid problem when I try to get data from Magento in Java. What is wrong with my code:</p> <pre><code>public class MagentoFacade { final String MAGENTO_API_KEY = "apikey"; final String MAGENTO_API_SECRET = "apisecret"; final String MAGENTO_REST_API_URL = "urlmagento/api/rest"; public void testMethod() { OAuthService service = new ServiceBuilder() .provider(MagentoThreeLeggedOAuth.class) .apiKey(MAGENTO_API_KEY) .apiSecret(MAGENTO_API_SECRET) .debug() .build(); System.out.println("" + service.getVersion()); // start Scanner in = new Scanner(System.in); System.out.println("Magento's OAuth Workflow"); System.out.println(); // Obtain the Request Token System.out.println("Fetching the Request Token..."); Token requestToken = service.getRequestToken(); System.out.println("Got the Request Token!"); System.out.println(); // Obtain the Authorization URL System.out.println("Fetching the Authorization URL..."); String authorizationUrl = service.getAuthorizationUrl(requestToken); System.out.println("Got the Authorization URL!"); System.out.println("Now go and authorize Main here:"); System.out.println(authorizationUrl); System.out.println("And paste the authorization code here"); System.out.print("&gt;&gt;"); Verifier verifier = new Verifier(in.nextLine()); System.out.println(); System.out.println("Trading the Request Token for an Access Token..."); Token accessToken = service.getAccessToken(requestToken, verifier); System.out.println("Got the Access Token!"); System.out.println("(if your curious it looks like this: " + accessToken + " )"); System.out.println(); OAuthRequest request = new OAuthRequest(Verb.GET, MAGENTO_REST_API_URL+ "/products?limit=2"); service.signRequest(accessToken, request); Response response = request.send(); System.out.println(); System.out.println(response.getCode()); System.out.println(response.getBody()); System.out.println(); } public static void main(String[] args) { MagentoFacade mf = new MagentoFacade(); mf.testMethod(); } </code></pre> <p>}</p> <pre><code>public final class MagentoThreeLeggedOAuth extends DefaultApi10a { private static final String BASE_URL = "urltoMagento/"; @Override public String getRequestTokenEndpoint() { return BASE_URL + "oauth/initiate"; } @Override public String getAccessTokenEndpoint() { return BASE_URL + "oauth/token"; } @Override public String getAuthorizationUrl(Token requestToken) { return BASE_URL + "richard/oauth_authorize?oauth_token=" + requestToken.getToken(); //this implementation is for admin roles only... } </code></pre> <p>}</p> <p>signature is: NnRaB73FqCcFAAVB4evZtGkWE3k= appended additional OAuth parameters: { oauth_callback -> oob , oauth_signature -> NnRaB73FqCcFAAVB4evZtGkWE3k= , oauth_version -> 1.0 , oauth_nonce -> 753236685 , oauth_signature_method -> HMAC-SHA1 , oauth_consumer_key -> ptrij1xt8tjisjb6kmdqed2v4rpla8av , oauth_timestamp -> 1359710704 } using Http Header signature sending request... response status code: 401 response body: oauth_problem=signature_invalid&amp;debug_sbs=MCe/RB8/GNuqV0qku00ubepc/Sc= Exception in thread "main" org.scribe.exceptions.OAuthException: Response body is incorrect. Can't extract token and secret from this: 'oauth_problem=signature_invalid&amp;debug_sbs=MCe/RB8/GNuqV0qku00ubepc/Sc=' at org.scribe.extractors.TokenExtractorImpl.extract(TokenExtractorImpl.java:41) at org.scribe.extractors.TokenExtractorImpl.extract(TokenExtractorImpl.java:27) at org.scribe.oauth.OAuth10aServiceImpl.getRequestToken(OAuth10aServiceImpl.java:52) at magento.MagentoFacade.testMethod(MagentoFacade.java:39) at magento.MagentoFacade.main(MagentoFacade.java:73)</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload