This example covers uploading a photo to the current User's profile using the Graph API and the Facebook SDK for PHP.
It assumes that you've already acquired an access token using one of the helper classes found here. The access token must have the publish_actions
permission for this to work.
For more information, see the documentation for Facebook\Facebook
, Facebook\FileUpload\FacebookFile
, Facebook\FacebookResponse
, Facebook\GraphNodes\GraphNode
, Facebook\Exceptions\FacebookSDKException
and Facebook\Exceptions\FacebookResponseException
.
$fb = new Facebook\Facebook([
'app_id' => '{app-id}',
'app_secret' => '{app-secret}',
'default_graph_version' => 'v2.10',
]);
$data = [
'message' => 'My awesome photo upload example.',
'source' => $fb->fileToUpload('/path/to/photo.jpg'),
];
try {
// Returns a `Facebook\FacebookResponse` object
$response = $fb->post('/me/photos', $data, '{access-token}');
} catch(Facebook\Exceptions\FacebookResponseException $e) {
echo 'Graph returned an error: ' . $e->getMessage();
exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
echo 'Facebook SDK returned an error: ' . $e->getMessage();
exit;
}
$graphNode = $response->getGraphNode();
echo 'Photo ID: ' . $graphNode['id'];
Note that the message
field must come from the user, as pre-filled content is forbidden by the Platform Policies (2.3).