PureBasic
PureBasic
Get Task Lists
See more Google Tasks Examples
Demonstrates how to download the Google task lists.Chilkat PureBasic Downloads
IncludeFile "CkHttpResponse.pb"
IncludeFile "CkHttp.pb"
IncludeFile "CkJsonObject.pb"
IncludeFile "CkFileAccess.pb"
Procedure ChilkatExample()
success.i = 0
; This example requires the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.
; Get the previously obtained access token.
; See Get Google Tasks Access Token.
fac.i = CkFileAccess::ckCreate()
If fac.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
accessToken.s = CkFileAccess::ckReadEntireTextFile(fac,"qa_data/tokens/googleTasks.txt","utf-8")
If CkFileAccess::ckLastMethodSuccess(fac) = 0
Debug CkFileAccess::ckLastErrorText(fac)
CkFileAccess::ckDispose(fac)
ProcedureReturn
EndIf
http.i = CkHttp::ckCreate()
If http.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkHttp::setCkAuthToken(http, accessToken)
resp.i = CkHttpResponse::ckCreate()
If resp.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
success = CkHttp::ckHttpNoBody(http,"GET","https://www.googleapis.com/tasks/v1/users/@me/lists",resp)
If success = 0
Debug CkHttp::ckLastErrorText(http)
CkFileAccess::ckDispose(fac)
CkHttp::ckDispose(http)
CkHttpResponse::ckDispose(resp)
ProcedureReturn
EndIf
; Show the response body.
Debug CkHttpResponse::ckBodyStr(resp)
; Examine the response status code.
Debug "response status code: " + Str(CkHttpResponse::ckStatusCode(resp))
; Use this online tool to generate parsing code from sample JSON:
; Generate Parsing Code from JSON
kind.s
etag.s
i.i
count_i.i
id.s
title.s
updated.s
selfLink.s
json.i = CkJsonObject::ckCreate()
If json.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkJsonObject::ckLoad(json,CkHttpResponse::ckBodyStr(resp))
kind = CkJsonObject::ckStringOf(json,"kind")
etag = CkJsonObject::ckStringOf(json,"etag")
i = 0
count_i = CkJsonObject::ckSizeOfArray(json,"items")
While i < count_i
CkJsonObject::setCkI(json, i)
kind = CkJsonObject::ckStringOf(json,"items[i].kind")
id = CkJsonObject::ckStringOf(json,"items[i].id")
title = CkJsonObject::ckStringOf(json,"items[i].title")
updated = CkJsonObject::ckStringOf(json,"items[i].updated")
selfLink = CkJsonObject::ckStringOf(json,"items[i].selfLink")
i = i + 1
Wend
; Sample response:
; {
; "kind": "tasks#taskLists",
; "etag": "\"84_7Cubo3y98GMV9bE3zQclHxhc/cv_AS-HUP96xJ9bgP8Y2B8WGSpM\"",
; "items": [
; {
; "kind": "tasks#taskList",
; "id": "MDM4MzQ4NTA3NDQwMDUxMzQ2OTQ6MDow",
; "title": "My Tasks",
; "updated": "2019-04-04T17:42:52.000Z",
; "selfLink": "https://www.googleapis.com/tasks/v1/users/@me/lists/MDM4MzQ4NTA3NDQwMDUxMzQ2OTQ6MDow"
; },
; {
; "kind": "tasks#taskList",
; "id": "MDM4MzQ4NTA3NDQwMDUxMzQ2OTQ6MzE3OTUxODY4OTU1MTEwMDow",
; "title": "ccc",
; "updated": "2019-04-04T17:15:19.000Z",
; "selfLink": "https://www.googleapis.com/tasks/v1/users/@me/lists/MDM4MzQ4NTA3NDQwMDUxMzQ2OTQ6MzE3OTUxODY4OTU1MTEwMDow"
; },
; {
; "kind": "tasks#taskList",
; "id": "MDM4MzQ4NTA3NDQwMDUxMzQ2OTQ6NDQ0NTA4MDYyNTY3OTEzMzow",
; "title": "bbb",
; "updated": "2019-04-04T17:15:02.000Z",
; "selfLink": "https://www.googleapis.com/tasks/v1/users/@me/lists/MDM4MzQ4NTA3NDQwMDUxMzQ2OTQ6NDQ0NTA4MDYyNTY3OTEzMzow"
; },
; {
; "kind": "tasks#taskList",
; "id": "MDM4MzQ4NTA3NDQwMDUxMzQ2OTQ6NzAwOTA4MDA1NzU2ODYwMzow",
; "title": "aaa",
; "updated": "2019-04-04T17:13:17.000Z",
; "selfLink": "https://www.googleapis.com/tasks/v1/users/@me/lists/MDM4MzQ4NTA3NDQwMDUxMzQ2OTQ6NzAwOTA4MDA1NzU2ODYwMzow"
; }
; ]
; }
;
; response status code: 200
CkFileAccess::ckDispose(fac)
CkHttp::ckDispose(http)
CkHttpResponse::ckDispose(resp)
CkJsonObject::ckDispose(json)
ProcedureReturn
EndProcedure