Sample code for 30+ languages & platforms
Tcl

Create Google Photos Album

See more Google Photos Examples

Demonstrates how to create a Google Photos album.

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 Photos Access Token.

set jsonToken [new_CkJsonObject]

set success [CkJsonObject_LoadFile $jsonToken "qa_data/tokens/googlePhotos.json"]
if {$success == 0} then {
    puts [CkJsonObject_lastErrorText $jsonToken]
    delete_CkJsonObject $jsonToken
    exit
}

set http [new_CkHttp]

CkHttp_put_AuthToken $http [CkJsonObject_stringOf $jsonToken "access_token"]

# Create an album named "animals"
set json [new_CkJsonObject]

CkJsonObject_UpdateString $json "album.title" "animals"

set resp [new_CkHttpResponse]

set success [CkHttp_HttpJson $http "POST" "https://photoslibrary.googleapis.com/v1/albums" $json "application/json" $resp]
if {$success == 0} then {
    puts [CkHttp_lastErrorText $http]
    delete_CkJsonObject $jsonToken
    delete_CkHttp $http
    delete_CkJsonObject $json
    delete_CkHttpResponse $resp
    exit
}

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

# Examine the response status code.  Success is indicated by a status code of 200.
puts "response status code: [CkHttpResponse_get_StatusCode $resp]"

CkJsonObject_Load $json [CkHttpResponse_bodyStr $resp]

# Sample response:

# {
#   "id": "AKcbugHaQTvUKSi3M2RQxOhxhdEaLc5mfUcqFoIU_kpQaROyUD70BcFt7_mnz5PcwwsjPKeKnLHN",
#   "title": "animals",
#   "productUrl": "https://photos.google.com/lr/album/AKcbugHaQTvUKSi3M2RQxOhxhdEaLc5mfUcqFoIU_kpQaROyUD70BcFt7_mnz5PcwwsjPKeKnLHN",
#   "isWriteable": true
# }

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

set id [CkJsonObject_stringOf $json "id"]
set title [CkJsonObject_stringOf $json "title"]
set productUrl [CkJsonObject_stringOf $json "productUrl"]
set isWriteable [CkJsonObject_BoolOf $json "isWriteable"]

puts "id = $id"

delete_CkJsonObject $jsonToken
delete_CkHttp $http
delete_CkJsonObject $json
delete_CkHttpResponse $resp