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
(AutoIt) Get eBay Application TokenThis example shows how to request an eBay Application token.
; This example assumes the Chilkat API to have been previously unlocked. ; See Global Unlock Sample for sample code. ; See the Ebay documentation about Access token types ; Also see the Ebay documentation about client credentials grant flow $oHttp = ObjCreate("Chilkat.Http") ; If using the sandbox, the target endpoint will be: ; POST https://api.sandbox.ebay.com/identity/v1/oauth2/token ; If using the production (live) system, the target endpoint will be: ; POST https://api.ebay.com/identity/v1/oauth2/token ; The eBay client_id and client_secret needs to be sent ; in a Basic Authorization request header, which has this format: ; Authorization: Basic <B64_encoded_oauth_credentials> ; Chilkat takes care of it. You only need to set the Login = client_id, ; and password = client_secret, and indicate you want "Basic" HTTP Authorization. $oHttp.Login = "EBAY_CLIENT_ID" $oHttp.Password = "EBAY_CLIENT_SECRET" $oHttp.BasicAuth = True ; Let's do the following POST: ; HTTP method: POST ; URL (Sandbox): https://api.sandbox.ebay.com/identity/v1/oauth2/token ; ; HTTP headers: ; Content-Type = application/x-www-form-urlencoded ; Authorization = Basic <B64-encoded-oauth-credentials> ; ; Request body (wrapped for readability): ; grant_type=client_credentials& ; redirect_uri=<RuName-value>& ; scope=<SPACE separated list of scopes> ; ; Create an HttpRequest object to hold the request params. $oReq = ObjCreate("Chilkat.HttpRequest") $oReq.HttpVerb = "POST" $oReq.AddParam "grant_type","client_credentials" ; The scope query param indicates the access to be provided by the token. ; Multiple scopes can be specified by separating each with a SPACE char. ; See the Ebay OAuth scopes documentation $oReq.AddParam "scope","https://api.ebay.com/oauth/api_scope" ; (The PostUrlEncoded method automatically sets the Content-Type header equal to "application/x-www-form-urlencoded") Local $sEndPoint = "https://api.sandbox.ebay.com/identity/v1/oauth2/token" Local $oResp = $oHttp.PostUrlEncoded($sEndPoint,$oReq) If ($oHttp.LastMethodSuccess <> True) Then ConsoleWrite($oHttp.LastErrorText & @CRLF) Exit EndIf ; The response is JSON.. $oJson = ObjCreate("Chilkat.JsonObject") $oJson.Load($oResp.BodyStr) $oJson.EmitCompact = False ; If the response status code is not 200, then it failed. ConsoleWrite("Response status code = " & $oResp.StatusCode & @CRLF) If ($oResp.StatusCode <> 200) Then ConsoleWrite($oJson.Emit() & @CRLF) ConsoleWrite("Failed." & @CRLF) Exit EndIf ; We successfully retrieved an eBay access token. ; The actual access token string can be parsed from the JSON like this: Local $sAccessToken = $oJson.StringOf("access_token") ; This application token is only valid for 7200 seconds (2 hours). We'll want to refresh ; it before it expires. (There is an online example for that..) ; For now, let's save the JSON to a file for our application to use. ; But before doing that, let's add to the JSON an expiration timestamp ; so we know when to refresh the token. $oDtExpire = ObjCreate("Chilkat.CkDateTime") $oDtExpire.SetFromCurrentSystemTime() $oDtExpire.AddSeconds($oJson.IntOf("expires_in")) $oJson.AppendString("expire_time",$oDtExpire.GetAsTimestamp(False)) ; Persist the JSON to a file. $oFac = ObjCreate("Chilkat.FileAccess") Local $bSuccess = $oFac.WriteEntireTextFile("qa_data/tokens/ebay.json",$oJson.Emit(),"utf-8",False) If ($bSuccess <> True) Then ConsoleWrite($oFac.LastErrorText & @CRLF) ConsoleWrite("Failed to save eBay Application token to file." & @CRLF) Exit EndIf ConsoleWrite($oJson.Emit() & @CRLF) ConsoleWrite("Success." & @CRLF) ; The output of this example is: ; { ; "access_token": "v^1.1#i^1#p^1#I^3#r^0# ... Ajp1BQhJDgAA", ; "token_type": "Application Access Token", ; "expires_in": 7200, ; "refresh_token": "N/A", ; "expire_time": "2017-04-16T14:44:20Z" ; } ; ; Success. ; |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.