Perl
Perl
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 Perl Downloads
use chilkat();
$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 = chilkat::CkOAuth2->new();
$oauth2->put_AccessToken("FACEBOOK-ACCESS-TOKEN");
$rest = chilkat::CkRest->new();
# Connect to Facebook...
$success = $rest->Connect("graph.facebook.com",443,1,1);
if ($success != 1) {
print $rest->lastErrorText() . "\r\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 = chilkat::CkStringBuilder->new();
$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() != 1) {
print $rest->lastErrorText() . "\r\n";
exit;
}
$json = chilkat::CkJsonObject->new();
$json->put_EmitCompact(0);
$json->Load($responseJson);
# Show the JSON in human-readable format.
print $json->emit() . "\r\n";
# Get the image URL.
$imageUrl = $json->stringOf("images[0].source");
print "Downloading from " . $imageUrl . "\r\n";
$sbImageUrl = chilkat::CkStringBuilder->new();
$sbImageUrl->Append($imageUrl);
# Build the output local file path.
$sbToPath = chilkat::CkStringBuilder->new();
$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() . "\r\n";
# Download using Chilkat HTTP.
$http = chilkat::CkHttp->new();
$success = $http->Download($imageUrl,$sbToPath->getAsString());
if ($success != 1) {
print $http->lastErrorText() . "\r\n";
}
else {
print "Downloaded." . "\r\n";
}