Pascal (Lazarus/Delphi)
Pascal (Lazarus/Delphi)
Constant Contact - Get Contact by Email Address
See more Constant Contact Examples
Get the contact details for a given email address.Chilkat Pascal (Lazarus/Delphi) Downloads
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.Http,
Chilkat.StringBuilder,
Chilkat.JsonObject;
// ---------------------------------------------------------------------------
procedure RunDemo;
var
success: Boolean;
http: THttp;
sbResponseBody: TStringBuilder;
jResp: TJsonObject;
respStatusCode: Integer;
contact_id: string;
email_addressAddress: string;
email_addressPermission_to_send: string;
email_addressCreated_at: string;
email_addressUpdated_at: string;
email_addressOpt_in_source: string;
email_addressOpt_in_date: string;
email_addressConfirm_status: string;
first_name: string;
last_name: string;
job_title: string;
company_name: string;
birthday_month: Integer;
birthday_day: Integer;
anniversary: string;
create_source: string;
created_at: string;
updated_at: string;
i: Integer;
count_i: Integer;
begin
success := False;
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
http := THttp.Create;
// Implements the following CURL command:
// curl -X GET \
// 'https://api.cc.email/v3/contacts?email=new_contact_email&status=all' \
// -H 'Accept: application/json' \
// -H 'Authorization: Bearer ACCESS_TOKEN' \
// -H 'Content-Type: application/json' \
// -H 'Postman-Token: 98980ee6-b99f-41a9-9a7a-3b5651d2ea7f' \
// -H 'cache-control: no-cache'
// Use the following online tool to generate HTTP code from a CURL command
// Convert a cURL Command to HTTP Source Code
http.SetRequestHeader('Accept','application/json');
// Adds the "Authorization: Bearer ACCESS_TOKEN" header.
http.AuthToken := 'ACCESS_TOKEN';
http.SetRequestHeader('Postman-Token','98980ee6-b99f-41a9-9a7a-3b5651d2ea7f');
http.SetRequestHeader('Content-Type','application/json');
http.SetRequestHeader('cache-control','no-cache');
sbResponseBody := TStringBuilder.Create;
success := http.QuickGetSb('https://api.cc.email/v3/contacts?email=danipper@example.com&status=all',sbResponseBody);
if (success = False) then
begin
WriteLn(http.LastErrorText);
Exit;
end;
jResp := TJsonObject.Create;
jResp.LoadSb(sbResponseBody);
jResp.EmitCompact := False;
WriteLn('Response Body:');
WriteLn(jResp.Emit());
respStatusCode := http.LastStatus;
WriteLn('Response Status Code = ' + respStatusCode);
if (respStatusCode >= 400) then
begin
WriteLn('Response Header:');
WriteLn(http.LastHeader);
WriteLn('Failed.');
Exit;
end;
// Sample JSON response:
// (Sample code for parsing the JSON response is shown below)
// {
// "contacts": [
// {
// "contact_id": "8207fa8e-13dd-11eb-8a66-fa163e37306a",
// "email_address": {
// "address": "danipper@example.com",
// "permission_to_send": "implicit",
// "created_at": "2020-10-21T20:39:25Z",
// "updated_at": "2020-10-21T20:39:25Z",
// "opt_in_source": "Account",
// "opt_in_date": "2020-10-21T20:39:25Z",
// "confirm_status": "off"
// },
// "first_name": "David",
// "last_name": "Nipper",
// "job_title": "Musician",
// "company_name": "Acme Corp.",
// "birthday_month": 11,
// "birthday_day": 24,
// "anniversary": "2006-11-15",
// "create_source": "Account",
// "created_at": "2020-10-21T20:39:25Z",
// "updated_at": "2020-10-21T20:39:25Z"
// }
// ]
// }
// Sample code for parsing the JSON response...
// Use the following online tool to generate parsing code from sample JSON:
// Generate Parsing Code from JSON
i := 0;
count_i := jResp.SizeOfArray('contacts');
while i < count_i do
begin
jResp.I := i;
contact_id := jResp.StringOf('contacts[i].contact_id');
email_addressAddress := jResp.StringOf('contacts[i].email_address.address');
email_addressPermission_to_send := jResp.StringOf('contacts[i].email_address.permission_to_send');
email_addressCreated_at := jResp.StringOf('contacts[i].email_address.created_at');
email_addressUpdated_at := jResp.StringOf('contacts[i].email_address.updated_at');
email_addressOpt_in_source := jResp.StringOf('contacts[i].email_address.opt_in_source');
email_addressOpt_in_date := jResp.StringOf('contacts[i].email_address.opt_in_date');
email_addressConfirm_status := jResp.StringOf('contacts[i].email_address.confirm_status');
first_name := jResp.StringOf('contacts[i].first_name');
last_name := jResp.StringOf('contacts[i].last_name');
job_title := jResp.StringOf('contacts[i].job_title');
company_name := jResp.StringOf('contacts[i].company_name');
birthday_month := jResp.IntOf('contacts[i].birthday_month');
birthday_day := jResp.IntOf('contacts[i].birthday_day');
anniversary := jResp.StringOf('contacts[i].anniversary');
create_source := jResp.StringOf('contacts[i].create_source');
created_at := jResp.StringOf('contacts[i].created_at');
updated_at := jResp.StringOf('contacts[i].updated_at');
i := i + 1;
end;
http.Free;
sbResponseBody.Free;
jResp.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.