Sample code for 30+ languages & platforms
Tcl

Trello Create New Board

See more Trello Examples

Create a new board.

For more information, see https://developers.trello.com/reference#boardsid

Chilkat Tcl Downloads

Tcl

load ./chilkat.dll

set success 0

# This example assumes the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.

# curl --request POST \
#   --url 'https://api.trello.com/1/boards?name=name&defaultLabels=true&defaultLists=true&keepFromSource=none&prefs_permissionLevel=private
#           &prefs_voting=disabled&prefs_comments=members&prefs_invitations=members&prefs_selfJoin=true&prefs_cardCovers=true&prefs_background=blue&prefs_cardAging=regular'

# First get our previously obtained access token.
set jsonToken [new_CkJsonObject]

set success [CkJsonObject_LoadFile $jsonToken "qa_data/tokens/trello.json"]

set oauth1 [new_CkOAuth1]

CkOAuth1_put_ConsumerKey $oauth1 "TRELLO_CONSUMER_KEY"
CkOAuth1_put_ConsumerSecret $oauth1 "TRELLO_CONSUMER_SECRET"
CkOAuth1_put_Token $oauth1 [CkJsonObject_stringOf $jsonToken "oauth_token"]
CkOAuth1_put_TokenSecret $oauth1 [CkJsonObject_stringOf $jsonToken "oauth_token_secret"]

set rest [new_CkRest]

# Connect using TLS.
# A single REST object, once connected, can be used for many Trello REST API calls.
# The auto-reconnect indicates that if the already-established HTTPS connection is closed,
# then it will be automatically re-established as needed.
set bAutoReconnect 1
set success [CkRest_Connect $rest "api.trello.com" 443 1 $bAutoReconnect]
if {$success != 1} then {
    puts [CkRest_lastErrorText $rest]
    delete_CkJsonObject $jsonToken
    delete_CkOAuth1 $oauth1
    delete_CkRest $rest
    exit
}

CkRest_SetAuthOAuth1 $rest $oauth1 0

CkRest_AddQueryParam $rest "name" "Football & Rugby"
CkRest_AddQueryParam $rest "defaultLabels" "true"
CkRest_AddQueryParam $rest "defaultLists" "true"
CkRest_AddQueryParam $rest "keepFromSource" "none"
CkRest_AddQueryParam $rest "prefs_permissionLevel" "private"
CkRest_AddQueryParam $rest "prefs_voting" "disabled"
CkRest_AddQueryParam $rest "prefs_comments" "members"
CkRest_AddQueryParam $rest "prefs_invitations" "members"
CkRest_AddQueryParam $rest "prefs_selfJoin" "true"
CkRest_AddQueryParam $rest "prefs_cardCovers" "true"
CkRest_AddQueryParam $rest "prefs_background" "blue"
CkRest_AddQueryParam $rest "prefs_cardAging" "regular"

CkRest_AddHeader $rest "Accept" "application/json"

set responseBody [CkRest_fullRequestFormUrlEncoded $rest "POST" "/1/boards"]
if {[CkRest_get_LastMethodSuccess $rest] != 1} then {
    puts [CkRest_lastErrorText $rest]
    delete_CkJsonObject $jsonToken
    delete_CkOAuth1 $oauth1
    delete_CkRest $rest
    exit
}

# We should expect a 200 response if successful.
if {[CkRest_get_ResponseStatusCode $rest] != 200} then {
    puts "Request Header: "
    puts [CkRest_lastRequestHeader $rest]
    puts "----"
    puts "Response StatusCode = [CkRest_get_ResponseStatusCode $rest]"
    puts "Response StatusLine: [CkRest_responseStatusText $rest]"
    puts "Response Header:"
    puts [CkRest_responseHeader $rest]
    puts "$responseBody"
    delete_CkJsonObject $jsonToken
    delete_CkOAuth1 $oauth1
    delete_CkRest $rest
    exit
}

set json [new_CkJsonObject]

CkJsonObject_Load $json $responseBody
CkJsonObject_put_EmitCompact $json 0
puts [CkJsonObject_emit $json]
puts "Success."

# A sample JSON response:
# (See the parsing code below...)
# Use this online tool to generate parsing code from sample JSON: 
# Generate Parsing Code from JSON

# 
# {
#   "id": "5cc606a1e2441a8a8fe3dc48",
#   "name": "Football",
#   "desc": "",
#   "descData": null,
#   "closed": false,
#   "idOrganization": null,
#   "pinned": false,
#   "url": "https://trello.com/b/eadpS1Pe/football",
#   "shortUrl": "https://trello.com/b/eadpS1Pe",
#   "prefs": {
#     "permissionLevel": "private",
#     "voting": "disabled",
#     "comments": "members",
#     "invitations": "members",
#     "selfJoin": true,
#     "cardCovers": true,
#     "cardAging": "regular",
#     "calendarFeedEnabled": false,
#     "background": "blue",
#     "backgroundImage": null,
#     "backgroundImageScaled": null,
#     "backgroundTile": false,
#     "backgroundBrightness": "dark",
#     "backgroundColor": "#0079BF",
#     "backgroundBottomColor": "#0079BF",
#     "backgroundTopColor": "#0079BF",
#     "canBePublic": true,
#     "canBeEnterprise": true,
#     "canBeOrg": true,
#     "canBePrivate": true,
#     "canInvite": true
#   },
#   "labelNames": {
#     "green": "",
#     "yellow": "",
#     "orange": "",
#     "red": "",
#     "purple": "",
#     "blue": "",
#     "sky": "",
#     "lime": "",
#     "pink": "",
#     "black": ""
#   },
#   "limits": {}
# }

set id [CkJsonObject_stringOf $json "id"]
set name [CkJsonObject_stringOf $json "name"]
set desc [CkJsonObject_stringOf $json "desc"]
set descData [CkJsonObject_stringOf $json "descData"]
set closed [CkJsonObject_BoolOf $json "closed"]
set idOrganization [CkJsonObject_stringOf $json "idOrganization"]
set pinned [CkJsonObject_BoolOf $json "pinned"]
set url [CkJsonObject_stringOf $json "url"]
set shortUrl [CkJsonObject_stringOf $json "shortUrl"]
set prefsPermissionLevel [CkJsonObject_stringOf $json "prefs.permissionLevel"]
set prefsVoting [CkJsonObject_stringOf $json "prefs.voting"]
set prefsComments [CkJsonObject_stringOf $json "prefs.comments"]
set prefsInvitations [CkJsonObject_stringOf $json "prefs.invitations"]
set prefsSelfJoin [CkJsonObject_BoolOf $json "prefs.selfJoin"]
set prefsCardCovers [CkJsonObject_BoolOf $json "prefs.cardCovers"]
set prefsCardAging [CkJsonObject_stringOf $json "prefs.cardAging"]
set prefsCalendarFeedEnabled [CkJsonObject_BoolOf $json "prefs.calendarFeedEnabled"]
set prefsBackground [CkJsonObject_stringOf $json "prefs.background"]
set prefsBackgroundImage [CkJsonObject_stringOf $json "prefs.backgroundImage"]
set prefsBackgroundImageScaled [CkJsonObject_stringOf $json "prefs.backgroundImageScaled"]
set prefsBackgroundTile [CkJsonObject_BoolOf $json "prefs.backgroundTile"]
set prefsBackgroundBrightness [CkJsonObject_stringOf $json "prefs.backgroundBrightness"]
set prefsBackgroundColor [CkJsonObject_stringOf $json "prefs.backgroundColor"]
set prefsBackgroundBottomColor [CkJsonObject_stringOf $json "prefs.backgroundBottomColor"]
set prefsBackgroundTopColor [CkJsonObject_stringOf $json "prefs.backgroundTopColor"]
set prefsCanBePublic [CkJsonObject_BoolOf $json "prefs.canBePublic"]
set prefsCanBeEnterprise [CkJsonObject_BoolOf $json "prefs.canBeEnterprise"]
set prefsCanBeOrg [CkJsonObject_BoolOf $json "prefs.canBeOrg"]
set prefsCanBePrivate [CkJsonObject_BoolOf $json "prefs.canBePrivate"]
set prefsCanInvite [CkJsonObject_BoolOf $json "prefs.canInvite"]
set labelNamesGreen [CkJsonObject_stringOf $json "labelNames.green"]
set labelNamesYellow [CkJsonObject_stringOf $json "labelNames.yellow"]
set labelNamesOrange [CkJsonObject_stringOf $json "labelNames.orange"]
set labelNamesRed [CkJsonObject_stringOf $json "labelNames.red"]
set labelNamesPurple [CkJsonObject_stringOf $json "labelNames.purple"]
set labelNamesBlue [CkJsonObject_stringOf $json "labelNames.blue"]
set labelNamesSky [CkJsonObject_stringOf $json "labelNames.sky"]
set labelNamesLime [CkJsonObject_stringOf $json "labelNames.lime"]
set labelNamesPink [CkJsonObject_stringOf $json "labelNames.pink"]
set labelNamesBlack [CkJsonObject_stringOf $json "labelNames.black"]

delete_CkJsonObject $jsonToken
delete_CkOAuth1 $oauth1
delete_CkRest $rest
delete_CkJsonObject $json