PureBasic
PureBasic
Quickbooks Revoke OAuth2 Token
See more QuickBooks Examples
Demonstrates how to revoke a QuickBooks OAuth2 access token.Chilkat PureBasic Downloads
IncludeFile "CkHttpResponse.pb"
IncludeFile "CkHttp.pb"
IncludeFile "CkJsonObject.pb"
Procedure ChilkatExample()
success.i = 0
; This example requires the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.
; This example assumes we previously obtained an OAuth2 access token for QuickBooks.
jsonToken.i = CkJsonObject::ckCreate()
If jsonToken.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
success = CkJsonObject::ckLoadFile(jsonToken,"qa_data/tokens/qb-access-token.json")
If success <> 1
Debug "Failed to load qb-access-token.json"
CkJsonObject::ckDispose(jsonToken)
ProcedureReturn
EndIf
; The access token JSON looks something like this:
; {
; "expires_in": 3600,
; "x_refresh_token_expires_in": 8726400,
; "refresh_token": "L011546037639r ... 3vR2DrbOmg0Sdagw",
; "access_token": "eyJlbmMiOiJBMTI4Q0 ... oETJEMbeggg",
; "token_type": "bearer"
; }
; This code sends the following request:
; POST https://developer.api.intuit.com/v2/oauth2/tokens/revoke HTTP/1.1
; Accept: application/json
; Authorization: Basic UTM0dVB...wM1d2
; Content-Type: application/json
;
; {
; "token": "{bearerToken or refreshToken}"
; }
; Use this online tool to generate HTTP code from a sample request:
; Generate Code from a Sample HTTP Request
http.i = CkHttp::ckCreate()
If http.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkHttp::ckSetRequestHeader(http,"Accept","application/json")
CkHttp::setCkBasicAuth(http, 1)
CkHttp::setCkLogin(http, "QUICKBOOKS-CLIENT-ID")
CkHttp::setCkPassword(http, "QUICKBOOKS-CLIENT-SECRET")
json.i = CkJsonObject::ckCreate()
If json.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkJsonObject::ckUpdateString(json,"token",CkJsonObject::ckStringOf(jsonToken,"access_token"))
url.s = "https://developer.api.intuit.com/v2/oauth2/tokens/revoke"
resp.i = CkHttpResponse::ckCreate()
If resp.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
success = CkHttp::ckHttpJson(http,"POST",url,json,"application/json",resp)
If success = 0
Debug CkHttp::ckLastErrorText(http)
CkJsonObject::ckDispose(jsonToken)
CkHttp::ckDispose(http)
CkJsonObject::ckDispose(json)
CkHttpResponse::ckDispose(resp)
ProcedureReturn
EndIf
Debug "Response status code = " + Str(CkHttpResponse::ckStatusCode(resp))
Debug "Response body:"
Debug CkHttpResponse::ckBodyStr(resp)
CkJsonObject::ckDispose(jsonToken)
CkHttp::ckDispose(http)
CkJsonObject::ckDispose(json)
CkHttpResponse::ckDispose(resp)
ProcedureReturn
EndProcedure