Post on a Facebook wall as Page, not as user
Solution 1
You need the publish_stream,manage_pages
permissions. The code is something like:
<?php
// This code is just a snippet of the example.php script
// from the PHP-SDK <https://github.com/facebook/facebook-php-sdk/blob/master/examples/example.php>
require '../src/facebook.php';
// Create our Application instance (replace this with your appId and secret).
$facebook = new Facebook(array(
'appId' => 'app_id',
'secret' => 'app_secret',
));
// Get User ID
$user = $facebook->getUser();
if ($user) {
try {
$page_id = 'page_id';
$page_info = $facebook->api("/$page_id?fields=access_token");
if( !empty($page_info['access_token']) ) {
$args = array(
'access_token' => $page_info['access_token'],
'message' => "I'm a Page!"
);
$post_id = $facebook->api("/$page_id/feed","post",$args);
} else {
$permissions = $facebook->api("/me/permissions");
if( !array_key_exists('publish_stream', $permissions['data'][0]) ||
!array_key_exists('manage_pages', $permissions['data'][0])) {
// We don't have one of the permissions
// Alert the admin or ask for the permission!
header( "Location: " . $facebook->getLoginUrl(array("scope" => "publish_stream, manage_pages")) );
}
}
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}
// Login or logout url will be needed depending on current user state.
if ($user) {
$logoutUrl = $facebook->getLogoutUrl();
} else {
$loginUrl = $facebook->getLoginUrl(array('scope'=>'manage_pages,publish_stream'));
}
// ... rest of your code
?>
I've written and in-depth tutorial about this: How To: Post On Facebook Page As Page Not As Admin User Using PHP-SDK
Solution 2
You must first have a user authorize via facebook connect, and request the manage_pages permission as a part of this request. You can use this permission to obtain a token and secret for the page in question. You then use those to authorize requests as opposed to the token/secret you received for the user.
Check out the "Page Login" section of this page for some additional info: http://developers.facebook.com/docs/authentication/
Related videos on Youtube
Comments
-
WASD42 over 3 years
Is it possible to post on a Facebook wall as application and not as user? As far as I understand an application is not a valid user for Facebook, but there are numerous comments about posting as Page and not as User or Application.
How can I do it using PHP Facebook API?
-
WASD42 about 13 yearsIt is necessary that the message was signed as belonging to the application (or any Facebook page), rather than the Facebook user. Imagine the following situation: 1. Application's user (not Facebook's!) perform some action in it; 2. Application adds a message about what just happened on its own Facebook wall or page. Strictly speaking, user of application is not required to be registered on Facebook. It is only necessary that the application in Facebook had an ability to post messages on application's wall AND as application as author.
-
vinzenzweber about 13 yearsYou should probably add the
offline_access
permission as well!