Sample code for 30+ languages & platforms
PureBasic

Trello Create New Board

See more Trello Examples

Create a new board.

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

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkRest.pb"
IncludeFile "CkJsonObject.pb"
IncludeFile "CkOAuth1.pb"

Procedure ChilkatExample()

    success.i = 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.
    jsonToken.i = CkJsonObject::ckCreate()
    If jsonToken.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    success = CkJsonObject::ckLoadFile(jsonToken,"qa_data/tokens/trello.json")

    oauth1.i = CkOAuth1::ckCreate()
    If oauth1.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    CkOAuth1::setCkConsumerKey(oauth1, "TRELLO_CONSUMER_KEY")
    CkOAuth1::setCkConsumerSecret(oauth1, "TRELLO_CONSUMER_SECRET")
    CkOAuth1::setCkToken(oauth1, CkJsonObject::ckStringOf(jsonToken,"oauth_token"))
    CkOAuth1::setCkTokenSecret(oauth1, CkJsonObject::ckStringOf(jsonToken,"oauth_token_secret"))

    rest.i = CkRest::ckCreate()
    If rest.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    ; 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.
    bAutoReconnect.i = 1
    success = CkRest::ckConnect(rest,"api.trello.com",443,1,bAutoReconnect)
    If success <> 1
        Debug CkRest::ckLastErrorText(rest)
        CkJsonObject::ckDispose(jsonToken)
        CkOAuth1::ckDispose(oauth1)
        CkRest::ckDispose(rest)
        ProcedureReturn
    EndIf

    CkRest::ckSetAuthOAuth1(rest,oauth1,0)

    CkRest::ckAddQueryParam(rest,"name","Football & Rugby")
    CkRest::ckAddQueryParam(rest,"defaultLabels","true")
    CkRest::ckAddQueryParam(rest,"defaultLists","true")
    CkRest::ckAddQueryParam(rest,"keepFromSource","none")
    CkRest::ckAddQueryParam(rest,"prefs_permissionLevel","private")
    CkRest::ckAddQueryParam(rest,"prefs_voting","disabled")
    CkRest::ckAddQueryParam(rest,"prefs_comments","members")
    CkRest::ckAddQueryParam(rest,"prefs_invitations","members")
    CkRest::ckAddQueryParam(rest,"prefs_selfJoin","true")
    CkRest::ckAddQueryParam(rest,"prefs_cardCovers","true")
    CkRest::ckAddQueryParam(rest,"prefs_background","blue")
    CkRest::ckAddQueryParam(rest,"prefs_cardAging","regular")

    CkRest::ckAddHeader(rest,"Accept","application/json")

    responseBody.s = CkRest::ckFullRequestFormUrlEncoded(rest,"POST","/1/boards")
    If CkRest::ckLastMethodSuccess(rest) <> 1
        Debug CkRest::ckLastErrorText(rest)
        CkJsonObject::ckDispose(jsonToken)
        CkOAuth1::ckDispose(oauth1)
        CkRest::ckDispose(rest)
        ProcedureReturn
    EndIf

    ; We should expect a 200 response if successful.
    If CkRest::ckResponseStatusCode(rest) <> 200
        Debug "Request Header: "
        Debug CkRest::ckLastRequestHeader(rest)
        Debug "----"
        Debug "Response StatusCode = " + Str(CkRest::ckResponseStatusCode(rest))
        Debug "Response StatusLine: " + CkRest::ckResponseStatusText(rest)
        Debug "Response Header:"
        Debug CkRest::ckResponseHeader(rest)
        Debug responseBody
        CkJsonObject::ckDispose(jsonToken)
        CkOAuth1::ckDispose(oauth1)
        CkRest::ckDispose(rest)
        ProcedureReturn
    EndIf

    json.i = CkJsonObject::ckCreate()
    If json.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    CkJsonObject::ckLoad(json,responseBody)
    CkJsonObject::setCkEmitCompact(json, 0)
    Debug CkJsonObject::ckEmit(json)
    Debug "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": {}
    ; }

    id.s
    name.s
    desc.s
    descData.s
    closed.i
    idOrganization.s
    pinned.i
    url.s
    shortUrl.s
    prefsPermissionLevel.s
    prefsVoting.s
    prefsComments.s
    prefsInvitations.s
    prefsSelfJoin.i
    prefsCardCovers.i
    prefsCardAging.s
    prefsCalendarFeedEnabled.i
    prefsBackground.s
    prefsBackgroundImage.s
    prefsBackgroundImageScaled.s
    prefsBackgroundTile.i
    prefsBackgroundBrightness.s
    prefsBackgroundColor.s
    prefsBackgroundBottomColor.s
    prefsBackgroundTopColor.s
    prefsCanBePublic.i
    prefsCanBeEnterprise.i
    prefsCanBeOrg.i
    prefsCanBePrivate.i
    prefsCanInvite.i
    labelNamesGreen.s
    labelNamesYellow.s
    labelNamesOrange.s
    labelNamesRed.s
    labelNamesPurple.s
    labelNamesBlue.s
    labelNamesSky.s
    labelNamesLime.s
    labelNamesPink.s
    labelNamesBlack.s

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


    CkJsonObject::ckDispose(jsonToken)
    CkOAuth1::ckDispose(oauth1)
    CkRest::ckDispose(rest)
    CkJsonObject::ckDispose(json)


    ProcedureReturn
EndProcedure