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