Sample code for 30+ languages & platforms
Tcl

Create a New GMail Label

See more GMail REST API Examples

Demonstrates how to create a new GMail label.

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.

set http [new_CkHttp]

CkHttp_put_AuthToken $http "GMAIL-ACCESS-TOKEN"

set userId "me"
CkHttp_SetUrlVar $http "userId" $userId

# Create the JSON to be sent in the HTTP request body.
# The name of the new label is "questions".
set json [new_CkJsonObject]

CkJsonObject_UpdateString $json "name" "questions"
CkJsonObject_UpdateString $json "labelListVisibility" "labelShow"
CkJsonObject_UpdateString $json "messageListVisibility" "show"

CkJsonObject_put_EmitCompact $json 0
puts [CkJsonObject_emit $json]

# The JSON contains this:
# {
#   "name": "questions",
#   "labelListVisibility": "labelShow",
#   "messageListVisibility": "show"
# }

set url "https://www.googleapis.com/gmail/v1/users/{$userId}/labels"
set resp [new_CkHttpResponse]

set success [CkHttp_HttpJson $http "POST" $url $json "application/json" $resp]
if {$success == 0} then {
    puts [CkHttp_lastErrorText $http]
    delete_CkHttp $http
    delete_CkJsonObject $json
    delete_CkHttpResponse $resp
    exit
}

puts "status = [CkHttpResponse_get_StatusCode $resp]"

# A 200 response status indicate success.
if {[CkHttpResponse_get_StatusCode $resp] != 200} then {
    puts [CkHttpResponse_bodyStr $resp]
    puts "Failed."
    delete_CkHttp $http
    delete_CkJsonObject $json
    delete_CkHttpResponse $resp
    exit
}

# A successful repsonse contains JSON that looks like this:

# {
#  "id": "Label_43",
#  "name": "questions",
#  "messageListVisibility": "show",
#  "labelListVisibility": "labelShow"
# }

puts "response body:"
puts [CkHttpResponse_bodyStr $resp]

puts "GMail label created!"

delete_CkHttp $http
delete_CkJsonObject $json
delete_CkHttpResponse $resp