Install Facebook PHP SDK
- Use Composer to include Facebook PHP SDK in your project. This SDK will handle authorization and facilitate API calls to post on your page.
composer require facebook/graph-sdk
Generate Access Token
- Go to the Facebook Developer portal and navigate to the "Access Tokens" section under your app's settings.
- Generate a Page Access Token with the appropriate permissions (e.g., `manage_pages`, `publish_pages`). This is a necessary step for programmatically posting to Facebook.
Initialize Facebook SDK in PHP
- Start by including the Composer autoload file in your PHP script to make use of the Facebook SDK classes.
- Create a new instance of the Facebook class and configure it with your app credentials.
require_once __DIR__ . '/vendor/autoload.php'; // Change path as needed
$fb = new \Facebook\Facebook([
'app_id' => 'your-app-id',
'app_secret' => 'your-app-secret',
'default_graph_version' => 'v3.2',
//'default_access_token' => '{access-token}', // optional
]);
Create the Post Content
- Decide what content you want to post. This could be text, a link, an image, or a combination thereof.
- Prepare an array with the appropriate parameters to create a post. Each parameter needs to be carefully aligned with Facebook's API specifications.
$data = [
'message' => 'Hello, this is a post from my PHP app!',
'link' => 'https://www.example.com', // Optional: attach a link
//'source' => $fb->fileToUpload('/path/to/photo.jpg'), // Optional: attach an image
];
Post to Your Facebook Page
- Use the Page Access Token you obtained earlier to authorize your request.
- Make a POST request to the `/me/feed` endpoint to publish your content. Ensure to handle exceptions to catch API errors.
try {
// Returns a `Facebook\FacebookResponse` object
$response = $fb->post('/me/feed', $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 'Posted with id: ' . $graphNode['id'];
Verify Post and Handle Response
- Check the response object to confirm that there is no error during the post-operation, ensuring your content was successfully published to your Facebook Page.
- Retrieve the post ID from the response to confirm your post's presence on Facebook and for future reference.