Делается это достаточно просто. Для того, что бы запостить что-то на страницу в фэйсбуке нужно:
Начнем.
Приложение создаем на странице https://develop....
В разделе "Settings > Permissions" в строке"Extended Permissions" нужно выбрать:
Для этого пишем простой скрипт (точнее это 90% копипаст из документации фэйсбука ):
<?php error_reporting(E_ALL); include("facebook.php"); $facebook = new Facebook(array( 'appId' => 'XXX', 'secret' => 'YYY', 'cookie' => true )); ?><html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head> <body> <pre><?php $userId = $facebook->getUser(); if(!$userId) { $loginParameters = array( 'scope' => 'manage_pages, publish_stream, offline_access', 'redirect_uri' => 'http://digitorum.ru<#_url#>' ); print "<a href='" . $facebook->getLoginUrl($loginParameters) . "'>войти</a>"; } else { print "<a href='" . $facebook->getLogoutUrl() . "'>выйти</a>"; $result = $facebook->api('/me', 'GET', array('fields' => 'id,name,accounts')); print_r($result); } ?></pre> </body> </html>
В процессе авторизации у нас попросят выдать приложению права:
После авторизации в браузере будет что-то типа этого:
Array
(
[id] => 0000000
[name] => Vasya Pupkin
[accounts] => Array
(
[data] => Array
(
[0] => Array
(
[category] => Page category
[name] => Page Name
[access_token] => Page access token
[id] => Page id
[perms] => Array
(
[0] => ADMINISTER
[1] => EDIT_PROFILE
[2] => CREATE_CONTENT
[3] => MODERATE_CONTENT
[4] => CREATE_ADS
[5] => BASIC_ADMIN
)
)
)
[paging] => Array
(
[next] => https://graph.facebook.com/...
)
)
)
Нас интересует access_token. Проверяем его с помощью Debugger'а facebook https://develop.... В секции "Info" в строке "Expires" должно стоять знячение "Never". Это значит что мы получили immortal access_token.
Но, кстати, не такой уж он и иммортал. Есть у него "кощеева пята". Если пользователь изменит пароль, или будут изменены AppID или AppSecret - токен придется получать заново.
<?php error_reporting(E_ALL); include("facebook.php"); // тот самый полученный ранее immortal token $accessToken = 'ZZZ'; $facebook = new Facebook(array( 'appId' => 'XXX', 'secret' => 'YYY', 'cookie' => true )); $facebook->setAccessToken($accessToken); $result = $facebook->api( '/PageID/feed', 'POST', array( 'message' => 'Тестовое сообщение через приложение. Дата: ' . date('Y-m-d H:i') . '.', 'link' => 'http://digitorum.ru/', 'name' => 'Установленное вручную название ссылки', 'caption' => 'Минимальное описание для ссылки', 'description' => 'Описание' ) ); print_r($result); ?>
В результате нам фэйсбук отдаст либо id записи, либо код ошибки (если что-то пошло не так).
Profit.