Sample code for 30+ languages & platforms
Tcl

Get Task Lists

See more Google Tasks Examples

Demonstrates how to download the Google task lists.

Chilkat Tcl Downloads

Tcl

load ./chilkat.dll

set success 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.

set fac [new_CkFileAccess]

set accessToken [CkFileAccess_readEntireTextFile $fac "qa_data/tokens/googleTasks.txt" "utf-8"]
if {[CkFileAccess_get_LastMethodSuccess $fac] == 0} then {
    puts [CkFileAccess_lastErrorText $fac]
    delete_CkFileAccess $fac
    exit
}

set http [new_CkHttp]

CkHttp_put_AuthToken $http $accessToken

set resp [new_CkHttpResponse]

set success [CkHttp_HttpNoBody $http "GET" "https://www.googleapis.com/tasks/v1/users/@me/lists" $resp]
if {$success == 0} then {
    puts [CkHttp_lastErrorText $http]
    delete_CkFileAccess $fac
    delete_CkHttp $http
    delete_CkHttpResponse $resp
    exit
}

# Show the response body.
puts [CkHttpResponse_bodyStr $resp]

# Examine the response status code.
puts "response status code: [CkHttpResponse_get_StatusCode $resp]"

# Use this online tool to generate parsing code from sample JSON: 
# Generate Parsing Code from JSON

set json [new_CkJsonObject]

CkJsonObject_Load $json [CkHttpResponse_bodyStr $resp]

set kind [CkJsonObject_stringOf $json "kind"]
set etag [CkJsonObject_stringOf $json "etag"]
set i 0
set count_i [CkJsonObject_SizeOfArray $json "items"]
while {$i < $count_i} {
    CkJsonObject_put_I $json $i
    set kind [CkJsonObject_stringOf $json "items[i].kind"]
    set id [CkJsonObject_stringOf $json "items[i].id"]
    set title [CkJsonObject_stringOf $json "items[i].title"]
    set updated [CkJsonObject_stringOf $json "items[i].updated"]
    set selfLink [CkJsonObject_stringOf $json "items[i].selfLink"]
    set i [expr $i + 1]
}

# 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

delete_CkFileAccess $fac
delete_CkHttp $http
delete_CkHttpResponse $resp
delete_CkJsonObject $json