PureBasic
PureBasic
Xero Get Full Set of Tenants
See more Xero Examples
Check the full set of tenants you've been authorized to accessChilkat PureBasic Downloads
IncludeFile "CkHttpResponse.pb"
IncludeFile "CkHttp.pb"
IncludeFile "CkJsonArray.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.
http.i = CkHttp::ckCreate()
If http.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
jsonToken.i = CkJsonObject::ckCreate()
If jsonToken.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
success = CkJsonObject::ckLoadFile(jsonToken,"qa_data/tokens/xero-access-token.json")
If success = 0
Debug CkJsonObject::ckLastErrorText(jsonToken)
CkHttp::ckDispose(http)
CkJsonObject::ckDispose(jsonToken)
ProcedureReturn
EndIf
CkHttp::setCkAuthToken(http, CkJsonObject::ckStringOf(jsonToken,"access_token"))
CkHttp::setCkAccept(http, "application/json")
resp.i = CkHttpResponse::ckCreate()
If resp.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
success = CkHttp::ckHttpNoBody(http,"GET","https://api.xero.com/connections",resp)
If success = 0
Debug CkHttp::ckLastErrorText(http)
CkHttp::ckDispose(http)
CkJsonObject::ckDispose(jsonToken)
CkHttpResponse::ckDispose(resp)
ProcedureReturn
EndIf
Debug "Response Status Code: " + Str(CkHttpResponse::ckStatusCode(resp))
jarr.i = CkJsonArray::ckCreate()
If jarr.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkJsonArray::ckLoad(jarr,CkHttpResponse::ckBodyStr(resp))
CkJsonArray::setCkEmitCompact(jarr, 0)
Debug CkJsonArray::ckEmit(jarr)
If CkHttpResponse::ckStatusCode(resp) <> 200
Debug "Failed."
CkHttp::ckDispose(http)
CkJsonObject::ckDispose(jsonToken)
CkHttpResponse::ckDispose(resp)
CkJsonArray::ckDispose(jarr)
ProcedureReturn
EndIf
; Sample response
; Use this online tool to generate parsing code from sample JSON:
; Generate Parsing Code from JSON
; [
; {
; "id": "c869f3b7-6435-4c7e-8cb2-122721b04a69",
; "tenantId": "45e4708e-d862-4111-ab3a-dd8cd03913e1",
; "tenantType": "ORGANISATION",
; "createdDateUtc": "2020-02-02T19:17:58.1117990",
; "updatedDateUtc": "2020-02-02T19:17:58.1117990"
; },
; {
; "id": "74305bf3-12e0-45e2-8dc8-e3ec73e3b1f9",
; "tenantId": "c3d5e782-2153-4cda-bdb4-cec791ceb90d",
; "tenantType": "ORGANISATION",
; "createdDateUtc": "2020-01-30T01:33:36.2717380",
; "updatedDateUtc": "2020-02-02T19:21:08.5739590"
; }
; ]
json.i
id.s
tenantId.s
tenantType.s
createdDateUtc.s
updatedDateUtc.s
i.i = 0
count_i.i = CkJsonArray::ckSize(jarr)
While i < count_i
json = CkJsonArray::ckObjectAt(jarr,i)
id = CkJsonObject::ckStringOf(json,"id")
tenantId = CkJsonObject::ckStringOf(json,"tenantId")
tenantType = CkJsonObject::ckStringOf(json,"tenantType")
createdDateUtc = CkJsonObject::ckStringOf(json,"createdDateUtc")
updatedDateUtc = CkJsonObject::ckStringOf(json,"updatedDateUtc")
CkJsonObject::ckDispose(json)
i = i + 1
Wend
CkHttp::ckDispose(http)
CkJsonObject::ckDispose(jsonToken)
CkHttpResponse::ckDispose(resp)
CkJsonArray::ckDispose(jarr)
ProcedureReturn
EndProcedure