PureBasic
PureBasic
Refresh eBay Application Access Token
See more eBay Examples
This example shows how to get a new eBay REST API access token when the original is close to expiration.Chilkat PureBasic Downloads
IncludeFile "CkOAuth2.pb"
IncludeFile "CkJsonObject.pb"
Procedure ChilkatExample()
success.i = 0
; This example assumes the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.
; The previously fetched eBay access token looks like this:
; {
; "access_token": "v^1.1#i^1# ... HwSAAA=",
; "expires_in": 7200,
; "refresh_token": "v^1.1#i^1# ... FXjEyODQ=",
; "refresh_token_expires_in": 47304000,
; "token_type": "User Access Token"
; }
json.i = CkJsonObject::ckCreate()
If json.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
success = CkJsonObject::ckLoadFile(json,"qa_data/tokens/ebay-access-token.json")
If success = 0
Debug "Failed to load the existing ebay access token JSON."
CkJsonObject::ckDispose(json)
ProcedureReturn
EndIf
oauth2.i = CkOAuth2::ckCreate()
If oauth2.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkOAuth2::setCkTokenEndpoint(oauth2, "https://api.sandbox.ebay.com/identity/v1/oauth2/token")
; Replace these with actual values.
CkOAuth2::setCkClientId(oauth2, "EBAY_CLIENT_ID")
CkOAuth2::setCkClientSecret(oauth2, "EBAY_CLIENT_SECRET")
; Get the "refresh_token"
CkOAuth2::setCkRefreshToken(oauth2, CkJsonObject::ckStringOf(json,"refresh_token"))
; Send the HTTP POST to refresh the access token..
success = CkOAuth2::ckRefreshAccessToken(oauth2)
If success = 0
Debug CkOAuth2::ckLastErrorText(oauth2)
CkJsonObject::ckDispose(json)
CkOAuth2::ckDispose(oauth2)
ProcedureReturn
EndIf
; Load the access token response into the JSON object
CkJsonObject::ckLoad(json,CkOAuth2::ckAccessTokenResponse(oauth2))
; Save the new JSON access token response to a file.
; The access + refresh tokens contained in this JSON will be needed for the next refresh.
CkJsonObject::setCkEmitCompact(json, 0)
CkJsonObject::ckWriteFile(json,"qa_data/tokens/ebay-access-token.json")
Debug "OAuth2 authorization granted!"
Debug "New Access Token = " + CkOAuth2::ckAccessToken(oauth2)
CkJsonObject::ckDispose(json)
CkOAuth2::ckDispose(oauth2)
ProcedureReturn
EndProcedure