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

Trello List Member Boards

See more Trello Examples

Lists the boards that the user is a member of.

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

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.JsonArray,
  Chilkat.OAuth1,
  Chilkat.Rest,
  Chilkat.JsonObject;

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

procedure RunDemo;
var
  success: Boolean;
  jsonToken: TJsonObject;
  oauth1: TOAuth1;
  rest: TRest;
  bAutoReconnect: Boolean;
  responseBody: string;
  jarr: TJsonArray;
  i: Integer;
  count_i: Integer;
  json: TJsonObject;
  name: string;
  desc: string;
  descData: string;
  closed: Boolean;
  idOrganization: string;
  limits: string;
  pinned: string;
  shortLink: string;
  dateLastActivity: string;
  datePluginDisable: string;
  creationMethod: string;
  ixUpdate: string;
  id: string;
  starred: Boolean;
  url: string;
  prefsPermissionLevel: string;
  prefsVoting: string;
  prefsComments: string;
  prefsInvitations: string;
  prefsSelfJoin: Boolean;
  prefsCardCovers: Boolean;
  prefsCardAging: string;
  prefsCalendarFeedEnabled: Boolean;
  prefsBackground: string;
  prefsBackgroundImage: string;
  prefsBackgroundTile: Boolean;
  prefsBackgroundBrightness: string;
  prefsBackgroundBottomColor: string;
  prefsBackgroundTopColor: string;
  prefsCanBePublic: Boolean;
  prefsCanBeEnterprise: Boolean;
  prefsCanBeOrg: Boolean;
  prefsCanBePrivate: Boolean;
  prefsCanInvite: Boolean;
  subscribed: Boolean;
  labelNamesGreen: string;
  labelNamesYellow: string;
  labelNamesOrange: string;
  labelNamesRed: string;
  labelNamesPurple: string;
  labelNamesBlue: string;
  labelNamesSky: string;
  labelNamesLime: string;
  labelNamesPink: string;
  labelNamesBlack: string;
  dateLastView: string;
  shortUrl: string;
  prefsBackgroundImageScaled: string;
  prefsBackgroundColor: string;
  j: Integer;
  count_j: Integer;
  width: Integer;
  height: Integer;
  idMember: string;
  memberType: string;
  unconfirmed: Boolean;
  deactivated: Boolean;

begin
  success := False;

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

  //  curl --request GET \
  //    --url 'https://api.trello.com/1/members/{member_id}/boards?filter=all&fields=all&lists=none&memberships=none&organization=false&organization_fields=displayName'

  //  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('filter','all');
  rest.AddQueryParam('fields','all');
  rest.AddQueryParam('lists','none');
  rest.AddQueryParam('memberships','normal');
  rest.AddQueryParam('organization','false');
  rest.AddQueryParam('organization_fields','name,displayName');

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

  responseBody := rest.FullRequestNoBody('GET','/1/members/member_id/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;

  jarr := TJsonArray.Create;
  jarr.Load(responseBody);
  jarr.EmitCompact := False;
  WriteLn(jarr.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

  //  [
  //    {
  //      "name": "House Projects",
  //      "desc": "",
  //      "descData": null,
  //      "closed": false,
  //      "idOrganization": null,
  //      "limits": null,
  //      "pinned": null,
  //      "shortLink": "j1hkQKKS",
  //      "powerUps": [
  //      ],
  //      "dateLastActivity": null,
  //      "idTags": [
  //      ],
  //      "datePluginDisable": null,
  //      "creationMethod": null,
  //      "ixUpdate": null,
  //      "id": "5cc5fe862106bb8e05aa41e7",
  //      "starred": false,
  //      "url": "https://trello.com/b/j1hkQKKS/house-projects",
  //      "prefs": {
  //        "permissionLevel": "private",
  //        "voting": "disabled",
  //        "comments": "members",
  //        "invitations": "members",
  //        "selfJoin": false,
  //        "cardCovers": true,
  //        "cardAging": "regular",
  //        "calendarFeedEnabled": false,
  //        "background": "5cc344f6ba4cdc5f5cfc7d81",
  //        "backgroundImage": "https://trello-backgrounds.s3.amazonaws.com/SharedBackground/2560x1709/4418c78f2f66d26932fef88aead2aff5/photo-1555985202-12975b0235dc",
  //        "backgroundImageScaled": [
  //          {
  //            "width": 140,
  //            "height": 93,
  //            "url": "https://trello-backgrounds.s3.amazonaws.com/SharedBackground/140x93/0aebced0ac2d8c9c4b9231b1960d28c2/photo-1555985202-12975b0235dc.jpg"
  //          },
  //   ...
  //          {
  //            "width": 2560,
  //            "height": 1709,
  //            "url": "https://trello-backgrounds.s3.amazonaws.com/SharedBackground/2560x1709/4418c78f2f66d26932fef88aead2aff5/photo-1555985202-12975b0235dc"
  //          }
  //        ],
  //        "backgroundTile": false,
  //        "backgroundBrightness": "dark",
  //        "backgroundBottomColor": "#412f23",
  //        "backgroundTopColor": "#a99d97",
  //        "canBePublic": true,
  //        "canBeEnterprise": true,
  //        "canBeOrg": true,
  //        "canBePrivate": true,
  //        "canInvite": true
  //      },
  //      "subscribed": false,
  //      "labelNames": {
  //        "green": "",
  //        "yellow": "",
  //        "orange": "",
  //        "red": "",
  //        "purple": "",
  //        "blue": "",
  //        "sky": "",
  //        "lime": "",
  //        "pink": "",
  //        "black": ""
  //      },
  //      "dateLastView": "2019-04-28T19:28:18.159Z",
  //      "shortUrl": "https://trello.com/b/j1hkQKKS",
  //      "memberships": [
  //        {
  //          "id": "5cc5fe862106bb8e05aa41e8",
  //          "idMember": "5cc5c74067d5215921ca7677",
  //          "memberType": "admin",
  //          "unconfirmed": false,
  //          "deactivated": false
  //        }
  //      ]
  //    },
  //    {
  //      "name": "Vacation Planning",
  //      "desc": "",
  //      "descData": null,
  //      "closed": false,
  //      "idOrganization": null,
  //      "limits": null,
  //      "pinned": null,
  //      "shortLink": "QqIHvQyz",
  //      "powerUps": [
  //      ],
  //      "dateLastActivity": "2019-04-28T15:32:20.134Z",
  //      "idTags": [
  //      ],
  //      "datePluginDisable": null,
  //      "creationMethod": "assisted",
  //      "ixUpdate": null,
  //      "id": "5cc5c783f5b10f8717a6b3d6",
  //      "starred": false,
  //      "url": "https://trello.com/b/QqIHvQyz/vacation-planning",
  //      "prefs": {
  //        "permissionLevel": "private",
  //        "voting": "disabled",
  //        "comments": "members",
  //        "invitations": "members",
  //        "selfJoin": true,
  //        "cardCovers": true,
  //        "cardAging": "regular",
  //        "calendarFeedEnabled": false,
  //        "background": "lime",
  //        "backgroundImage": null,
  //        "backgroundImageScaled": null,
  //        "backgroundTile": false,
  //        "backgroundBrightness": "dark",
  //        "backgroundColor": "#4BBF6B",
  //        "backgroundBottomColor": "#4BBF6B",
  //        "backgroundTopColor": "#4BBF6B",
  //        "canBePublic": true,
  //        "canBeEnterprise": true,
  //        "canBeOrg": true,
  //        "canBePrivate": true,
  //        "canInvite": true
  //      },
  //      "subscribed": false,
  //      "labelNames": {
  //        "green": "",
  //        "yellow": "",
  //        "orange": "",
  //        "red": "",
  //        "purple": "",
  //        "blue": "",
  //        "sky": "",
  //        "lime": "",
  //        "pink": "",
  //        "black": ""
  //      },
  //      "dateLastView": "2019-04-28T19:32:21.009Z",
  //      "shortUrl": "https://trello.com/b/QqIHvQyz",
  //      "memberships": [
  //        {
  //          "id": "5cc5c783f5b10f8717a6b3d7",
  //          "idMember": "5cc5c74067d5215921ca7677",
  //          "memberType": "admin",
  //          "unconfirmed": false,
  //          "deactivated": false
  //        }
  //      ]
  //    }
  //  ]

  i := 0;
  count_i := jarr.Size;
  while i < count_i do
    begin
      json := jarr.ObjectAt(i);
      name := json.StringOf('name');
      desc := json.StringOf('desc');
      descData := json.StringOf('descData');
      closed := json.BoolOf('closed');
      idOrganization := json.StringOf('idOrganization');
      limits := json.StringOf('limits');
      pinned := json.StringOf('pinned');
      shortLink := json.StringOf('shortLink');
      dateLastActivity := json.StringOf('dateLastActivity');
      datePluginDisable := json.StringOf('datePluginDisable');
      creationMethod := json.StringOf('creationMethod');
      ixUpdate := json.StringOf('ixUpdate');
      id := json.StringOf('id');
      starred := json.BoolOf('starred');
      url := json.StringOf('url');
      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');
      prefsBackgroundTile := json.BoolOf('prefs.backgroundTile');
      prefsBackgroundBrightness := json.StringOf('prefs.backgroundBrightness');
      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');
      subscribed := json.BoolOf('subscribed');
      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');
      dateLastView := json.StringOf('dateLastView');
      shortUrl := json.StringOf('shortUrl');
      prefsBackgroundImageScaled := json.StringOf('prefs.backgroundImageScaled');
      prefsBackgroundColor := json.StringOf('prefs.backgroundColor');
      j := 0;
      count_j := json.SizeOfArray('powerUps');
      while j < count_j do
        begin
          json.J := j;
          //  ...
          j := j + 1;
        end;

      j := 0;
      count_j := json.SizeOfArray('idTags');
      while j < count_j do
        begin
          json.J := j;
          //  ...
          j := j + 1;
        end;

      j := 0;
      count_j := json.SizeOfArray('prefs.backgroundImageScaled');
      while j < count_j do
        begin
          json.J := j;
          width := json.IntOf('prefs.backgroundImageScaled[j].width');
          height := json.IntOf('prefs.backgroundImageScaled[j].height');
          url := json.StringOf('prefs.backgroundImageScaled[j].url');
          j := j + 1;
        end;

      j := 0;
      count_j := json.SizeOfArray('memberships');
      while j < count_j do
        begin
          json.J := j;
          id := json.StringOf('memberships[j].id');
          idMember := json.StringOf('memberships[j].idMember');
          memberType := json.StringOf('memberships[j].memberType');
          unconfirmed := json.BoolOf('memberships[j].unconfirmed');
          deactivated := json.BoolOf('memberships[j].deactivated');
          j := j + 1;
        end;

      json.Free;
      i := i + 1;
    end;



  jsonToken.Free;
  oauth1.Free;
  rest.Free;
  jarr.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.