Sample code for 30+ languages & platforms
PHP Extension

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 Extension Downloads

PHP Extension
<?php

include("chilkat.php");

$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 = new CkOAuth2();
$oauth2->put_AccessToken('FACEBOOK-ACCESS-TOKEN');

$rest = new CkRest();

// Connect to Facebook...
$success = $rest->Connect('graph.facebook.com',443,true,true);
if ($success != true) {
    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 CkStringBuilder();
$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->get_LastMethodSuccess() != true) {
    print $rest->lastErrorText() . "\n";
    exit;
}

$json = new CkJsonObject();
$json->put_EmitCompact(false);
$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 CkStringBuilder();
$sbImageUrl->Append($imageUrl);

// Build the output local file path.
$sbToPath = new CkStringBuilder();
$sbToPath->Append('qa_output/fb');
$sbToPath->Append($json->stringOf('id'));
$bCaseSensitive = false;
if ($sbImageUrl->Contains('.jpg',$bCaseSensitive) == true) {
    $sbToPath->Append('.jpg');
}
else {
    $sbToPath->Append('.png');
}

print 'Downloading to ' . $sbToPath->getAsString() . "\n";

// Download using Chilkat HTTP.
$http = new CkHttp();
$success = $http->Download($imageUrl,$sbToPath->getAsString());
if ($success != true) {
    print $http->lastErrorText() . "\n";
}
else {
    print 'Downloaded.' . "\n";
}


?>