Sample code for 30+ languages & platforms
PureBasic

Get Task Lists

See more Google Tasks Examples

Demonstrates how to download the Google task lists.

Chilkat PureBasic Downloads

PureBasic
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