Delphi ActiveX Box: Get Folder Items

Back to Index

Gets all of the files, folders, or web links contained within a folder.

Documentation: https://developer.box.com/reference#get-a-folders-items

CURL Command

curl https://api.box.com/2.0/folders/BOX_FOLDER_ID/items?limit=2&offset=0 \
-H "Authorization: Bearer BOX_ACCESS_TOKEN"

Delphi ActiveX Example

var
rest: TChilkatRest;
success: Integer;
bTls: Integer;
port: Integer;
bAutoReconnect: Integer;
sbResponseBody: TChilkatStringBuilder;
jsonResponse: TChilkatJsonObject;
total_count: Integer;
offset: Integer;
limit: Integer;
i: Integer;
count_i: Integer;
type: WideString;
id: WideString;
file_versionType: WideString;
file_versionId: WideString;
file_versionSha1: WideString;
sequence_id: WideString;
etag: WideString;
sha1: WideString;
name: WideString;
by: WideString;
direction: WideString;

begin
rest := TChilkatRest.Create(Self);

//  URL: https://api.box.com/2.0/folders/BOX_FOLDER_ID/items?limit=2&offset=0
bTls := 1;
port := 443;
bAutoReconnect := 1;
success := rest.Connect('api.box.com',port,bTls,bAutoReconnect);
if (success <> 1) then
  begin
    Memo1.Lines.Add('ConnectFailReason: ' + IntToStr(rest.ConnectFailReason));
    Memo1.Lines.Add(rest.LastErrorText);
    Exit;
  end;

rest.AddHeader('Authorization','Bearer BOX_ACCESS_TOKEN');

sbResponseBody := TChilkatStringBuilder.Create(Self);
success := rest.FullRequestNoBodySb('GET','/2.0/folders/BOX_FOLDER_ID/items?limit=2&offset=0',sbResponseBody.ControlInterface);
if (success <> 1) then
  begin
    Memo1.Lines.Add(rest.LastErrorText);
    Exit;
  end;

jsonResponse := TChilkatJsonObject.Create(Self);
jsonResponse.LoadSb(sbResponseBody.ControlInterface);

total_count := jsonResponse.IntOf('total_count');
offset := jsonResponse.IntOf('offset');
limit := jsonResponse.IntOf('limit');
i := 0;
count_i := jsonResponse.SizeOfArray('entries');
while i < count_i do
  begin
    jsonResponse.I := i;
    type := jsonResponse.StringOf('entries[i].type');
    id := jsonResponse.StringOf('entries[i].id');
    file_versionType := jsonResponse.StringOf('entries[i].file_version.type');
    file_versionId := jsonResponse.StringOf('entries[i].file_version.id');
    file_versionSha1 := jsonResponse.StringOf('entries[i].file_version.sha1');
    sequence_id := jsonResponse.StringOf('entries[i].sequence_id');
    etag := jsonResponse.StringOf('entries[i].etag');
    sha1 := jsonResponse.StringOf('entries[i].sha1');
    name := jsonResponse.StringOf('entries[i].name');
    i := i + 1;
  end;

i := 0;
count_i := jsonResponse.SizeOfArray('order');
while i < count_i do
  begin
    jsonResponse.I := i;
    by := jsonResponse.StringOf('order[i].by');
    direction := jsonResponse.StringOf('order[i].direction');
    i := i + 1;
  end;

Sample JSON Response Body

{
  "total_count": 2,
  "entries": [
    {
      "type": "file",
      "id": "246181882790",
      "file_version": {
        "type": "file_version",
        "id": "259636211878",
        "sha1": "c9d2492fb97f88a9b4d1e35f32a3410e95853f18"
      },
      "sequence_id": "0",
      "etag": "0",
      "sha1": "c9d2492fb97f88a9b4d1e35f32a3410e95853f18",
      "name": "hedgehogs.jpg"
    },
    {
      "type": "file",
      "id": "246167973161",
      "file_version": {
        "type": "file_version",
        "id": "259621592361",
        "sha1": "df7be9dc4f467187783aca68c7ce98e4df2172d0"
      },
      "sequence_id": "0",
      "etag": "0",
      "sha1": "df7be9dc4f467187783aca68c7ce98e4df2172d0",
      "name": "penguins.jpg"
    }
  ],
  "offset": 0,
  "limit": 2,
  "order": [
    {
      "by": "type",
      "direction": "ASC"
    },
    {
      "by": "name",
      "direction": "ASC"
    }
  ]
}