2015-01-25 5 views
0

Я не понимаю, является ли API FB очень глупым или мое восприятие API не подходит для этого. Моя цель очень проста. У меня есть CMS. Когда я создаю новости с моей страницы администратора CMS, я также хочу опубликовать ее на моей странице в facebook. Этот API раздражает меня! Вот мой код;Публикация FB Graph 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's 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 использовал сладко, как твиттер ...

ответ

0

API Facebook работает очень похоже на Twitter. Вы не можете просто публиковать в Твиттере только сеанс приложения, вам нужно авторизовать пользователя.

Поскольку есть пользовательские профили и страницы на Facebook, есть токены доступа и токены доступа к странице. То, что вам нужно, это токен доступа к странице, и вы получаете его, авторизуя пользователя с вашим приложением, чтобы получить токен пользователя и называть конечную точку /me/accounts, чтобы получить токены для всех страниц, которыми вы управляете. Кроме того, вам необходимо авторизовать пользователя с разрешениями publish_actions и manage_pages. После этого вы можете использовать конечную точку /page-id/feed с этим токеном страницы, чтобы опубликовать его на странице «Страница».

Here's больше информации о Access лексем, что вам нужно конкретно это "Extended Page Токен", который длится вечно:

+0

«Что вам нужно, это Ток доступа к сети ... "этот токен недолговечен. Думаю, я могу заставить его в свою сессию динамически вызвать другой запрос в моем коде, а не вставить копию. – zet

+0

Нет, расширенный токен страницы действителен навсегда, как я писал. проверьте ссылки для получения информации о том, как создать расширенный. – luschn

Смежные вопросы