Post Links Using the Graph API

This example covers posting a link to the current user's timeline using the Graph API and Facebook SDK for PHP.

It assumes that you've already obtained an access token and the access token must have the publish_actions permission for this to work.

For more information, see the documentation for Facebook\Facebook, 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.2',

$linkData = [
  'link' => '',
  'message' => 'User provided message',

try {
  // Returns a `Facebook\FacebookResponse` object
  $response = $fb->post('/me/feed', $linkData, '{access-token}');
} catch(Facebook\Exceptions\FacebookResponseException $e) {
  echo 'Graph returned an error: ' . $e->getMessage();
} catch(Facebook\Exceptions\FacebookSDKException $e) {
  echo 'Facebook SDK returned an error: ' . $e->getMessage();

$graphNode = $response->getGraphNode();

echo 'Posted with id: ' . $graphNode['id'];

Note that the message field must come from the user, as pre-filled content is forbidden by the Platform Policies.