Sample code for 30+ languages & platforms
Pascal (Lazarus/Delphi)

Trello Create New Board

See more Trello Examples

Create a new board.

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

Chilkat Pascal (Lazarus/Delphi) Downloads

Pascal (Lazarus/Delphi)
program ChilkatDemo;

// Demonstrates using the Chilkat Pascal wrapper via the C bridge DLL.
// Builds as a console application under Lazarus (FPC) or Delphi.

{$IFDEF FPC}
  {$MODE DELPHI}
{$ENDIF}
{$APPTYPE CONSOLE}

uses
  {$IFDEF UNIX}
  cthreads,
  {$ENDIF}
  SysUtils,
  CkDllLoader,
  Chilkat.OAuth1,
  Chilkat.Rest,
  Chilkat.JsonObject;

// ---------------------------------------------------------------------------

procedure RunDemo;
var
  success: Boolean;
  jsonToken: TJsonObject;
  oauth1: TOAuth1;
  rest: TRest;
  bAutoReconnect: Boolean;
  responseBody: string;
  json: TJsonObject;
  id: string;
  name: string;
  desc: string;
  descData: string;
  closed: Boolean;
  idOrganization: string;
  pinned: Boolean;
  url: string;
  shortUrl: string;
  prefsPermissionLevel: string;
  prefsVoting: string;
  prefsComments: string;
  prefsInvitations: string;
  prefsSelfJoin: Boolean;
  prefsCardCovers: Boolean;
  prefsCardAging: string;
  prefsCalendarFeedEnabled: Boolean;
  prefsBackground: string;
  prefsBackgroundImage: string;
  prefsBackgroundImageScaled: string;
  prefsBackgroundTile: Boolean;
  prefsBackgroundBrightness: string;
  prefsBackgroundColor: string;
  prefsBackgroundBottomColor: string;
  prefsBackgroundTopColor: string;
  prefsCanBePublic: Boolean;
  prefsCanBeEnterprise: Boolean;
  prefsCanBeOrg: Boolean;
  prefsCanBePrivate: Boolean;
  prefsCanInvite: Boolean;
  labelNamesGreen: string;
  labelNamesYellow: string;
  labelNamesOrange: string;
  labelNamesRed: string;
  labelNamesPurple: string;
  labelNamesBlue: string;
  labelNamesSky: string;
  labelNamesLime: string;
  labelNamesPink: string;
  labelNamesBlack: string;

begin
  success := False;

  //  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 := TJsonObject.Create;
  success := jsonToken.LoadFile('qa_data/tokens/trello.json');

  oauth1 := TOAuth1.Create;
  oauth1.ConsumerKey := 'TRELLO_CONSUMER_KEY';
  oauth1.ConsumerSecret := 'TRELLO_CONSUMER_SECRET';
  oauth1.Token := jsonToken.StringOf('oauth_token');
  oauth1.TokenSecret := jsonToken.StringOf('oauth_token_secret');

  rest := TRest.Create;

  //  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 := True;
  success := rest.Connect('api.trello.com',443,True,bAutoReconnect);
  if (success <> True) then
    begin
      WriteLn(rest.LastErrorText);
      Exit;
    end;

  rest.SetAuthOAuth1(oauth1,False);

  rest.AddQueryParam('name','Football & Rugby');
  rest.AddQueryParam('defaultLabels','true');
  rest.AddQueryParam('defaultLists','true');
  rest.AddQueryParam('keepFromSource','none');
  rest.AddQueryParam('prefs_permissionLevel','private');
  rest.AddQueryParam('prefs_voting','disabled');
  rest.AddQueryParam('prefs_comments','members');
  rest.AddQueryParam('prefs_invitations','members');
  rest.AddQueryParam('prefs_selfJoin','true');
  rest.AddQueryParam('prefs_cardCovers','true');
  rest.AddQueryParam('prefs_background','blue');
  rest.AddQueryParam('prefs_cardAging','regular');

  rest.AddHeader('Accept','application/json');

  responseBody := rest.FullRequestFormUrlEncoded('POST','/1/boards');
  if (rest.LastMethodSuccess <> True) then
    begin
      WriteLn(rest.LastErrorText);
      Exit;
    end;

  //  We should expect a 200 response if successful.
  if (rest.ResponseStatusCode <> 200) then
    begin
      WriteLn('Request Header: ');
      WriteLn(rest.LastRequestHeader);
      WriteLn('----');
      WriteLn('Response StatusCode = ' + rest.ResponseStatusCode);
      WriteLn('Response StatusLine: ' + rest.ResponseStatusText);
      WriteLn('Response Header:');
      WriteLn(rest.ResponseHeader);
      WriteLn(responseBody);
      Exit;
    end;

  json := TJsonObject.Create;
  json.Load(responseBody);
  json.EmitCompact := False;
  WriteLn(json.Emit());
  WriteLn('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 := json.StringOf('id');
  name := json.StringOf('name');
  desc := json.StringOf('desc');
  descData := json.StringOf('descData');
  closed := json.BoolOf('closed');
  idOrganization := json.StringOf('idOrganization');
  pinned := json.BoolOf('pinned');
  url := json.StringOf('url');
  shortUrl := json.StringOf('shortUrl');
  prefsPermissionLevel := json.StringOf('prefs.permissionLevel');
  prefsVoting := json.StringOf('prefs.voting');
  prefsComments := json.StringOf('prefs.comments');
  prefsInvitations := json.StringOf('prefs.invitations');
  prefsSelfJoin := json.BoolOf('prefs.selfJoin');
  prefsCardCovers := json.BoolOf('prefs.cardCovers');
  prefsCardAging := json.StringOf('prefs.cardAging');
  prefsCalendarFeedEnabled := json.BoolOf('prefs.calendarFeedEnabled');
  prefsBackground := json.StringOf('prefs.background');
  prefsBackgroundImage := json.StringOf('prefs.backgroundImage');
  prefsBackgroundImageScaled := json.StringOf('prefs.backgroundImageScaled');
  prefsBackgroundTile := json.BoolOf('prefs.backgroundTile');
  prefsBackgroundBrightness := json.StringOf('prefs.backgroundBrightness');
  prefsBackgroundColor := json.StringOf('prefs.backgroundColor');
  prefsBackgroundBottomColor := json.StringOf('prefs.backgroundBottomColor');
  prefsBackgroundTopColor := json.StringOf('prefs.backgroundTopColor');
  prefsCanBePublic := json.BoolOf('prefs.canBePublic');
  prefsCanBeEnterprise := json.BoolOf('prefs.canBeEnterprise');
  prefsCanBeOrg := json.BoolOf('prefs.canBeOrg');
  prefsCanBePrivate := json.BoolOf('prefs.canBePrivate');
  prefsCanInvite := json.BoolOf('prefs.canInvite');
  labelNamesGreen := json.StringOf('labelNames.green');
  labelNamesYellow := json.StringOf('labelNames.yellow');
  labelNamesOrange := json.StringOf('labelNames.orange');
  labelNamesRed := json.StringOf('labelNames.red');
  labelNamesPurple := json.StringOf('labelNames.purple');
  labelNamesBlue := json.StringOf('labelNames.blue');
  labelNamesSky := json.StringOf('labelNames.sky');
  labelNamesLime := json.StringOf('labelNames.lime');
  labelNamesPink := json.StringOf('labelNames.pink');
  labelNamesBlack := json.StringOf('labelNames.black');


  jsonToken.Free;
  oauth1.Free;
  rest.Free;
  json.Free;

end;

// ---------------------------------------------------------------------------

begin

  try
    RunDemo;
  except
    on E: Exception do
      WriteLn('Unhandled exception: ', E.ClassName, ': ', E.Message);
  end;

  WriteLn;
  {$IFDEF MSWINDOWS}
  WriteLn('Press Enter to exit...');
  ReadLn;
  {$ENDIF}
end.