Sample code for 30+ languages & platforms
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 ActiveX
<?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";
}


?>