Авторизация фан-страницы Facebook для обновления статуса - PullRequest
10 голосов
/ 20 января 2010

Я могу обновить статус на моей стене ПРОФИЛЯ, используя этот код:

require_once 'facebook-platform/php/facebook.php';
$facebook = new Facebook('APP API KEY','APP SECRET KEY');
$user_id = 'MY USER ID';
$facebook->api_client->users_setStatus('This is a new status');

... после авторизации по этому адресу: http://facebook.com/authorize.php?api_key=MYAPPAPIKEY&v=1.0&ext_perm=publish_stream

Этот код, однако, не работает для обновления статуса на моей странице Facebook PAGE. Есть ли дополнительные параметры, которые я могу добавить к URL authorize.php, чтобы указать авторизацию PAGE, а не только мой профиль?

Или, есть ли лучшие способы публиковать обновления на стенах фан-страниц?

Спасибо!

Ответы [ 2 ]

21 голосов
/ 21 января 2010

Я решил проблему, обратившись к документации настольного приложения Facebook (даже если это веб-приложение).

Сначала мне пришлось авторизовать автономный доступ с помощью этого URL-адреса (заменив MYAPIKEY'): http://www.facebook.com/login.php?api_key=MYAPIKEY&connect_display=popup&v=1.0&next=http://www.facebook.com/connect/login_success.html&cancel_url=http://www.facebook.com/connect/login_failure.html&fbconnect=true&return_session=true&session_key_only=true&req_perms=read_stream,publish_stream,offline_access

Затем мне нужно было предоставить разрешения' publish_stream 'для PAGE с этим URL (заменив' MYAPIKEY 'и' THEPAGEID '): http://www.facebook.com/connect/prompt_permissions.php?api_key=MYAPIKEY&v=1.0&next=http://www.facebook.com/connect/login_success.html?xxRESULTTOKENxx&display=popup&ext_perm=publish_stream&enable_profile_selector=1&profile_selector_ids=THEPAGEID

Я мог бызатем используйте следующий код для публикации на стене фан-страницы:

require_once 'facebook-platform/php/facebook.php';
$facebook = new Facebook(MYAPIKEY, MYAPISECRET);
try{
    $facebook->api_client->stream_publish('INSERT_STATUS_HERE',null,null,null,'THEPAGEID');
}catch(Exception $o ){
    print_r($o);
}
0 голосов
/ 25 мая 2010

Исходя из вышеизложенного, я опробовал несколько параметров строки запроса в URL API авторизации графа, и, похоже, это работает:

https://graph.facebook.com/oauth/authorize?client_id=[APP_ID]&redirect_uri=[REDIRECT_URL]&scope=publish_stream&enable_profile_selector=1&profile_selector_ids=[PAGE_IDS]

РЕДАКТИРОВАТЬ: Неважно, вышеизложенное отображает все пользовательский интерфейс правильно, но все равно появляется ошибка «(# 200) Пользователь не авторизовал приложение для выполнения этого действия» - ясно, что он не работает, потому что токен доступа содержит мой идентификатор пользователя, но не идентификатор страницы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...