Sample code for 30+ languages & platforms
AutoIt

Get eBay Application Token

See more eBay Examples

This example shows how to request an eBay Application token.

Chilkat AutoIt Downloads

AutoIt
Local $bSuccess = False

; 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"

Local $sEndPoint = "https://api.sandbox.ebay.com/identity/v1/oauth2/token"
$oReq.ContentType = "application/x-www-form-urlencoded"

$oResp = ObjCreate("Chilkat.HttpResponse")
$bSuccess = $oHttp.HttpReq($sEndPoint,$oReq,$oResp)
If ($bSuccess = False) 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")
$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.
;