Delphi DLL
Delphi DLL
Get Individual Photo Info
See more Facebook Examples
Assuming we have the ID of a Photo, this example demonstrates how to retrieve the photo information and parse the JSON.Chilkat Delphi DLL Downloads
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, OAuth2, Rest, StringBuilder, JsonObject;
...
procedure TForm1.Button1Click(Sender: TObject);
var
success: Boolean;
oauth2: HCkOAuth2;
rest: HCkRest;
photoId: PWideChar;
sbPath: HCkStringBuilder;
responseJson: PWideChar;
json: HCkJsonObject;
canDelete: Boolean;
height: Integer;
width: Integer;
begin
success := False;
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
// This example assumes a previously obtained an access token
oauth2 := CkOAuth2_Create();
CkOAuth2_putAccessToken(oauth2,'FACEBOOK-ACCESS-TOKEN');
rest := CkRest_Create();
// Connect to Facebook...
success := CkRest_Connect(rest,'graph.facebook.com',443,True,True);
if (success <> True) then
begin
Memo1.Lines.Add(CkRest__lastErrorText(rest));
Exit;
end;
// Provide the authentication credentials (i.e. the access key)
CkRest_SetAuthOAuth2(rest,oauth2);
// Assumes we've already obtained a Photo ID.
photoId := '10210199026347451';
sbPath := CkStringBuilder_Create();
CkStringBuilder_Append(sbPath,'/v2.7/');
CkStringBuilder_Append(sbPath,photoId);
// Select the fields we want.
// This example will select many of the possible fields.
// See https://developers.facebook.com/docs/graph-api/reference/photo/
CkRest_AddQueryParam(rest,'fields','id,album,can_delete,can_tag,from,height,width,images,link,name,name_tags,picture,place,target');
responseJson := CkRest__fullRequestNoBody(rest,'GET',CkStringBuilder__getAsString(sbPath));
if (CkRest_getLastMethodSuccess(rest) <> True) then
begin
Memo1.Lines.Add(CkRest__lastErrorText(rest));
Exit;
end;
json := CkJsonObject_Create();
CkJsonObject_putEmitCompact(json,False);
CkJsonObject_Load(json,responseJson);
// Show the JSON in human-readable format.
Memo1.Lines.Add(CkJsonObject__emit(json));
// A sample response is shown below.
// Demonstrate how to parse values from the JSON.
Memo1.Lines.Add('Album name: ' + CkJsonObject__stringOf(json,'album.name'));
canDelete := CkJsonObject_BoolOf(json,'can_delete');
Memo1.Lines.Add('Can Delete: ' + IntToStr(Ord(canDelete)));
Memo1.Lines.Add('From Name: ' + CkJsonObject__stringOf(json,'from.name'));
height := CkJsonObject_IntOf(json,'height');
width := CkJsonObject_IntOf(json,'width');
Memo1.Lines.Add('Dimensions: ' + IntToStr(width) + 'x' + IntToStr(height));
Memo1.Lines.Add('First Image Source: ' + CkJsonObject__stringOf(json,'images[0].source'));
// A sample JSON response is shown here.
// {
// "id": "10210199026347451",
// "album": {
// "created_time": "2009-10-19T00:06:46+0000",
// "name": "Timeline Photos",
// "id": "1237223526054"
// },
// "can_delete": true,
// "can_tag": true,
// "from": {
// "name": "Matt Smith",
// "id": "10224048320139890"
// },
// "height": 120,
// "width": 120,
// "images": [
// {
// "height": 120,
// "source": "https:\/\/scontent.xx.fbcdn.net\/v\/t1.0-9\/14462791_10210199026347451_7830642117574407060_n.jpg?oh=a7f9ed10cf9cd81a82adeb541c60e2e2&oe=58ABB195",
// "width": 120
// }
// ],
// "link": "https:\/\/www.facebook.com\/photo.php?fbid=10210199026347451&set=a.1237223526054.2038240.1093202869&type=3",
// "name": "Ignore my posts -- I'm doing some testing for Facebook related programming...",
// "picture": "https:\/\/scontent.xx.fbcdn.net\/v\/t1.0-9\/14462791_10210199026347451_7830642117574407060_n.jpg?oh=a7f9ed10cf9cd81a82adeb541c60e2e2&oe=58ABB195"
// }
//
CkOAuth2_Dispose(oauth2);
CkRest_Dispose(rest);
CkStringBuilder_Dispose(sbPath);
CkJsonObject_Dispose(json);
end;