Sample code for 30+ languages & platforms
Delphi DLL

GeoOp - Find Account ID by Name

See more GeoOp Examples

Finds an account ID by name.

Chilkat Delphi DLL Downloads

Delphi DLL
uses
    Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
    Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, OAuth2, Rest, JsonObject;

...

procedure TForm1.Button1Click(Sender: TObject);
var
success: Boolean;
jsonToken: HCkJsonObject;
oauth2: HCkOAuth2;
rest: HCkRest;
bAutoReconnect: Boolean;
responseBody: PWideChar;
json: HCkJsonObject;
caseSensitive: Boolean;
accountId: PWideChar;

begin
success := False;

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

// This example also assumes an OAuth2 access token was previously fetched.
// and saved in a JSON file.  

// First get our previously obtained access token.
// {"access_token":"e6dqdG....mzjpT04w==","token_type":"Bearer","expires_in":2592000,"owner_id":999236}
jsonToken := CkJsonObject_Create();
success := CkJsonObject_LoadFile(jsonToken,'qa_data/tokens/geoop.json');

// This example assumes we previously obtained an access token
oauth2 := CkOAuth2_Create();
CkOAuth2_putAccessToken(oauth2,CkJsonObject__stringOf(jsonToken,'access_token'));

rest := CkRest_Create();

// Connect to GeoOp and send the following GET request:

// GET /users HTTP/1.1
// Host: api.geoop.com
bAutoReconnect := True;
success := CkRest_Connect(rest,'api.geoop.com',443,True,bAutoReconnect);
if (success <> True) then
  begin
    Memo1.Lines.Add(CkRest__lastErrorText(rest));
    Exit;
  end;

// Provide the authentication credentials (i.e. the access token)
CkRest_SetAuthOAuth2(rest,oauth2);

// Set the X-Version header.
CkRest_AddHeader(rest,'X-Version','1.0');

responseBody := CkRest__fullRequestNoBody(rest,'GET','/accounts');
if (CkRest_getLastMethodSuccess(rest) <> True) then
  begin
    Memo1.Lines.Add(CkRest__lastErrorText(rest));
    Exit;
  end;

// If the response status code did not indicate success, then see what happened..
if (CkRest_getResponseStatusCode(rest) <> 200) then
  begin
    Memo1.Lines.Add('Request Header: ');
    Memo1.Lines.Add(CkRest__lastRequestHeader(rest));
    Memo1.Lines.Add('----');
    Memo1.Lines.Add('Response StatusCode = ' + IntToStr(CkRest_getResponseStatusCode(rest)));
    Memo1.Lines.Add('Response StatusLine: ' + CkRest__responseStatusText(rest));
    Memo1.Lines.Add('Response Header:');
    Memo1.Lines.Add(CkRest__responseHeader(rest));
    Memo1.Lines.Add(responseBody);
    Exit;
  end;

json := CkJsonObject_Create();
CkJsonObject_putEmitCompact(json,False);
CkJsonObject_Load(json,responseBody);
// Show the full JSON response.  (see the sample response at the bottom of this example)
Memo1.Lines.Add(CkJsonObject__emit(json));

// To find the account id for a given company name:
caseSensitive := False;
accountId := CkJsonObject__findRecordString(json,'accounts','companyName','Chilkat Software, Inc.',caseSensitive,'id');
if (CkJsonObject_getLastMethodSuccess(json) <> True) then
  begin
    Memo1.Lines.Add('Account not found.');
  end
else
  begin
    Memo1.Lines.Add('The account ID is: ' + accountId);
  end;

// Find the account ID for the 1st company matching "Chilkat*"
accountId := CkJsonObject__findRecordString(json,'accounts','companyName','Chilkat*',caseSensitive,'id');
if (CkJsonObject_getLastMethodSuccess(json) <> True) then
  begin
    Memo1.Lines.Add('Account not found.');
  end
else
  begin
    Memo1.Lines.Add('The account ID is: ' + accountId);
  end;

// The full JSON response for GET /accounts looks like this:

// 	{
// 	  "result": "success",
// 	  "accounts": [
// 	    {
// 	      "id": 39409,
// 	      "companyName": "Chilkat Software, Inc.",
// 	      "licenses": 999,
// 	      "countryCode": 1
// 	    }
// 	  ],
// 	  "metadata": {
// 	    "page": 1,
// 	    "pagesCount": 1,
// 	    "recordsPerPage": 20,
// 	    "recordsCount": 1
// 	  }
// 	}
// 

CkJsonObject_Dispose(jsonToken);
CkOAuth2_Dispose(oauth2);
CkRest_Dispose(rest);
CkJsonObject_Dispose(json);

end;