Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(PureBasic) Get Akeneo Token given Client ID and SecretAssumes you're starting with a client ID and secret obtained from your OAuth1 provider, such as OneLogin. Demonstrates how to get an akeneo token using your client id/secret in combination with your akeneo login/password.
IncludeFile "CkHttpResponse.pb" IncludeFile "CkHttp.pb" IncludeFile "CkJsonObject.pb" Procedure ChilkatExample() ; This example requires the Chilkat API to have been previously unlocked. ; See Global Unlock Sample for sample code. http.i = CkHttp::ckCreate() If http.i = 0 Debug "Failed to create object." ProcedureReturn EndIf ; The HTTP Basic authentication for this request is the ; OAuth client id and secret you've already obtained. CkHttp::setCkBasicAuth(http, 1) CkHttp::setCkLogin(http, "my_akeneo_client_id") CkHttp::setCkPassword(http, "my_akeneo_secret") ; Build this JSON: ; { ; "grant_type": "password", ; "username": "yourusername", ; "password": "yourpassword" ; } json.i = CkJsonObject::ckCreate() If json.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkJsonObject::ckUpdateString(json,"grant_type","password") CkJsonObject::ckUpdateString(json,"username","my_akeneo_username") CkJsonObject::ckUpdateString(json,"password","my_akeneo_password") ; POST this JSON (with the Basic Authentication header) url.s = "http://pim.my-akeneo-site.com/api/oauth/v1/token" resp.i = CkHttp::ckPostJson3(http,url,"application/json",json) If CkHttp::ckLastMethodSuccess(http) <> 1 Debug CkHttp::ckLastErrorText(http) CkHttp::ckDispose(http) CkJsonObject::ckDispose(json) ProcedureReturn EndIf Debug "Response status code: " + Str(CkHttpResponse::ckStatusCode(resp)) Debug "Response body: " + CkHttpResponse::ckBodyStr(resp) If CkHttpResponse::ckStatusCode(resp) = 200 ; Success. ; Parse the response, which looks like this: ; { ; "access_token": "MTE0NzNkNzI5YTk0ZTBlNmFlNTI5NmVkOWJhZjUxYWRkN2UzZWIwOWNkMTkwNzY5Mzk3NGViMDFmYzdlODJlMg", ; "expires_in": 3600, ; "token_type": "bearer", ; "scope": null, ; "refresh_token": "ZDkyMzA2NDhlZjQ2MGQyMDQ2MWRiMDBmOTdkZjQ5ODY5Mzc3MTEzMjVkNTkwZThmNWRlNWY0MzllYWMxZWQ5ZA" ; } CkJsonObject::ckLoad(json,CkHttpResponse::ckBodyStr(resp)) access_token.s = CkJsonObject::ckStringOf(json,"access_token") expires_in.i = CkJsonObject::ckIntOf(json,"expires_in") token_type.s = CkJsonObject::ckStringOf(json,"token_type") scope.s = CkJsonObject::ckStringOf(json,"scope") refresh_token.s = CkJsonObject::ckStringOf(json,"refresh_token") Debug "Access Token: " + access_token EndIf CkHttpResponse::ckDispose(resp) CkHttp::ckDispose(http) CkJsonObject::ckDispose(json) ProcedureReturn EndProcedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.