Magento – Magic xpi

Goal : Generate Magento signature for OAuth1 and call Magento REST API with Magic xpi

1/ Prerequisites :

  • Get your consumerKey, consumerSecret, tokenSecret and tokenValue from you Magento Admin
  • Some Magic xpa knowledge

2/ Check with Postman that your Access REST API is working

Set “Version” with 1.0 and tick “Encode the parameters …”, Leave other parameters empty

2/ Generate the Magento signature with Magic xpi User Function

Open your Magic xpa Studio and create a new project , call it “userfunctions”

Define in the Main a new function and call it “GetMagentoSignature” or whatever (Function scope must be set to global).

Generate your HMAC256 within this function and generate your ecf file in “<Magic xpi directory>Runtime\User resources” directory.

In my case, i have used, a dotnet snippet inside the function (Invoke .NET) and the website lti.tools/oauth/ to understand the OAuth1 algorithm

(*) In other to get the information on how to generate Magento OAuth1 signature, please check the link below (“The OAuth Signature”)

https://developer.adobe.com/commerce/webapi/get-started/authentication/gs-authentication-oauth/#access-the-web-apis

The idea is that my function is returning a string formatted like below

OAuth oauth_consumer_key=””,oauth_token=””,oauth_signature_method=”HMAC-SHA256″,oauth_timestamp=””+timeStamp+””,oauth_nonce=””+nonce+””,oauth_version=”1.0″,oauth_signature=””+encodedsignature+””

where variables (timestamp, nonce , encodedsignature) are calculated in the code of the function.

3/ Add in your FunctionDescription.en.xml file (“<Magic xpi directory>Studio), the xml portion below at the end of the file

4/ Create a Magic xpi project and create a REST Client resource

5/ Create a new flow

Define 2 fow variables (F.SignatureEncoded (alpha unlimited) and F.Url (alpha unlimited).

Drag and drop a Flow Data Connector and update the 2 flow variables like below

6/ Drag & Drop a REST Client connector after this step and configure it like below

7/ Execute the flow in Debug mode

You should see the Authorization header in the Flow variable F.SignatureEncoded with the oauth_signature generated

You should receive status code 200 with OK and the JSON result of your query.

8/ https://developer.adobe.com/commerce/webapi/rest/quick-reference/

(*) In other to get the different Json schemas please check with the link above

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Copy link
URL has been copied successfully!
Follow by Email
YouTube
LinkedIn
LinkedIn
Share
Retour en haut