PHP ActiveX
PHP ActiveX
Download Photo to a File
See more Facebook Examples
Assuming we have the ID of a Photo, this example demonstrates how to download the photo image data to a file.Chilkat PHP ActiveX Downloads
<?php
$success = 0;
// 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 = new COM("Chilkat.OAuth2");
$oauth2->AccessToken = 'FACEBOOK-ACCESS-TOKEN';
$rest = new COM("Chilkat.Rest");
// Connect to Facebook...
$success = $rest->Connect('graph.facebook.com',443,1,1);
if ($success != 1) {
print $rest->LastErrorText . "\n";
exit;
}
// Provide the authentication credentials (i.e. the access key)
$rest->SetAuthOAuth2($oauth2);
// Assumes we've already obtained a Photo ID.
$photoId = '10210199026347451';
$sbPath = new COM("Chilkat.StringBuilder");
$sbPath->Append('/v2.7/');
$sbPath->Append($photoId);
// First we're going to get the photo informaton so we can get the URL of the image file data.
// Select the fields we want.
// See https://developers.facebook.com/docs/graph-api/reference/photo/
$rest->AddQueryParam('fields','id,album,images');
$responseJson = $rest->fullRequestNoBody('GET',$sbPath->getAsString());
if ($rest->LastMethodSuccess != 1) {
print $rest->LastErrorText . "\n";
exit;
}
$json = new COM("Chilkat.JsonObject");
$json->EmitCompact = 0;
$json->Load($responseJson);
// Show the JSON in human-readable format.
print $json->emit() . "\n";
// Get the image URL.
$imageUrl = $json->stringOf('images[0].source');
print 'Downloading from ' . $imageUrl . "\n";
$sbImageUrl = new COM("Chilkat.StringBuilder");
$sbImageUrl->Append($imageUrl);
// Build the output local file path.
$sbToPath = new COM("Chilkat.StringBuilder");
$sbToPath->Append('qa_output/fb');
$sbToPath->Append($json->stringOf('id'));
$bCaseSensitive = 0;
if ($sbImageUrl->Contains('.jpg',$bCaseSensitive) == 1) {
$sbToPath->Append('.jpg');
}
else {
$sbToPath->Append('.png');
}
print 'Downloading to ' . $sbToPath->getAsString() . "\n";
// Download using Chilkat HTTP.
$http = new COM("Chilkat.Http");
$success = $http->Download($imageUrl,$sbToPath->getAsString());
if ($success != 1) {
print $http->LastErrorText . "\n";
}
else {
print 'Downloaded.' . "\n";
}
?>