Я не понимаю, является ли API FB очень глупым или мое восприятие API не подходит для этого. Моя цель очень проста. У меня есть CMS. Когда я создаю новости с моей страницы администратора CMS, я также хочу опубликовать ее на моей странице в facebook. Этот API раздражает меня! Вот мой код;
$s = FacebookSession::setDefaultApplication('appid', 'secret');
$session = FacebookSession::newAppSession();
// when I use belowed two line, I'm getting error
//$request = new FacebookRequest($session, 'GET', '/me');
//$pageList = $request->execute()->getGraphObject()->asArray();
$session = new FacebookSession('I don't know what to write here? I have a session already? When I use the access token which taken from api explorer page, due to it life is short, I'm getting also error.');
$page_post=(new FacebookRequest( $session, 'POST','/<my_page_id_not_my_profile_id>/feed', array(
'access_token' => 'die!!! one more token! what is this!',
'link' => 'link',
'message' => 'message', ) ))->execute()->getGraphObject()->asArray();
ПРИМЕЧАНИЕ. Мне не нужны всплывающие окна для входа или другого метода. Я хочу, чтобы просто невинный API использовал сладко, как твиттер...
API Facebook работает очень похоже на Twitter. Вы не можете просто публиковать в Твиттере только сеанс приложения, вам нужно авторизовать пользователя.
Так как на Facebook есть профили пользователей и страницы, есть токены доступа и токены доступа к странице. Вам нужен токен доступа к странице, и вы получаете его, авторизуя пользователя с вашим приложением, чтобы получить токен пользователя и вызов конечной точки /me/accounts
чтобы получить токены для всех страниц, которыми вы управляете. Кроме того, вам необходимо авторизовать пользователя с разрешениями publish_actions
и manage_pages
. После этого вы можете использовать конечную точку /page-id/feed
с этим токеном для публикации на странице "Страница".
Вот дополнительная информация о токенах доступа, что вам нужно конкретно - это "расширенный токен страницы", который длится вечно: