2012-01-19 8 views
3

Я пытаюсь разобраться, как публиковать на стене страницы Facebook при использовании моего приложения в качестве другого Facebook-пользователя (который не является Администратор страницы).Как отправить на страницу Facebook (как получить токен доступа к странице + токен доступа пользователя)

я получаю несколько сообщений об ошибках во время тестирования: Исключения: 200: Пользователь не авторизован приложением для выполнения этого действия

Администратор страницы посетил приложение и принял следующие разрешения: publish_stream, manage_pages, offline_access

Вот код, который я планирую использовать:

// Insert Page Administrators ID here 
// This user is not the same user that is currently logged in and using the app 
// This user is the page administrator who has authorised: 
// - manage_pages 
// - offline_access 
// - publish_stream 

$user_id = '123456789'; 

// Insert Page ID here 
$page_id = '123456789'; 

$accounts = $facebook->api('/'.$user_id.'/accounts'); 

foreach($accounts['data'] as $account) 
{ 
    if($account['id'] == $page_id) 
    { 
    $page_access_token = $account['access_token']; 
    echo "<p>Page Access Token: $page_access_token</p>"; 
    } 
} 

// publish to the wall on your page 
try 
{ 
    $result = $facebook->api(array("uid" => $page_id, 
            "method" => "stream.publish", 
            "access_token" => $page_access_token, 
            "message" => $message,)); 
} 
catch (FacebookApiException $e) 
{ 
    error_log('FB Error: Could not post on Page Wall. Page ID: ' . $page_id); 
    error_log('FB Error Message: ' . $e); 
} 

Примечание: Там может быть PHP ошибки в коде выше, так как я просто сращивания его на лету, но его не так м uch ошибок PHP, которые мне нужно исправить, но более логично понимаю, как я должен идти по этому процессу.

ПРОБЛЕМА: Я не могу получить доступ к информации $ user_id/accounts без активного токена доступа для администратора страницы.

конечный результат, что я пытаюсь достичь: 1.) Обычный пользователь FB отправляется в приложение и отправляет форму 2.) сообщения приложения сообщения на ФБ Страница стены, которая не является принадлежащий пользователю FB, но ранее был разрешен администратором страницы со следующими разрешениями: manage_pages, publish_stream и offline_access

Q1. Поскольку администратор страницы принял соответствующие разрешения, почему я не могу просто создать токен доступа к активному пользователю, без регистрации пользователя веб-сайта реального пользователя?

Q2. Есть ли способ получить эквивалент/$ user_id/учетных записей для администратора_страницы пользователя user_id при входе в Facebook в качестве другого пользователя (поэтому я не использую/me/accounts)?

Q3. Пожалуйста, подтвердите, что мое понимание необходимости использования токена доступа к странице для публикации на стене страницы является правильным (или мне нужен пользователь access_token для администратора страницы - см. Q1)?

Q4. У кого-нибудь есть удобный ресурс, на который каждый доступ к access_token может получить доступ?

Если вам нужна дополнительная информация, пожалуйста, дайте мне знать. Я провел последние несколько дней, работая над этим, и я застрял.

Спасибо!

ответ

3
  1. Вы можете задать страницу администратора для manage_pages вместе с offline_access. Я делаю это в своем рабочем приложении, чтобы отправлять запланированные публикации на стены страниц.

  2. Nope. Невозможно. Вот о чем спрашивают разрешения. И почему не каждый может управлять всеми остальными страницами. Не могли бы вы создать изображение, если бы вы могли управлять любой страницей без предоставления вам доступа?!?

  3. Для размещения на странице, как страница, вам нужен токен доступа к странице. Для публикации на стене страницы в качестве пользователя вам нужен токен доступа пользователя.

  4. Да, смотрите: https://developers.facebook.com/docs/reference/api/permissions и https://developers.facebook.com/docs/authentication/

Если у вас есть дополнительные вопросы по поводу какой-либо одной из них, пожалуйста, начните новый вопрос. Это не очень справедливо для пользователей stackoverflow, которые будут поражены четырьмя вопросами в одном, а затем задавать последующие вопросы каждому из них.

+0

1. Я уже просить это разрешение и может подтвердить, что Администратор страницы имеет этот разрешено для моего приложения 2. Я понимаю необходимость разрешений, но мое приложение будет установлено на странице Facebook Facebook, а так как пользователи создают новые элементы, я хочу опубликовать на стене страницы Facebook Facebook. Поэтому в то время, когда сообщение пытается быть отправлено, пользователь, который использует приложение, не является администратором страницы, а просто обычным пользователем. – James

+0

3. Благодарим за разъяснение цели использования токена доступа к странице. Похоже, что я должен использовать токен доступа для доступа к стене страницы (принадлежащей администратору страницы, который одобрил соответствующие разрешения - manage_pages/offline_access), но я получаю ошибки аутентификации (которые я буду отслеживать вниз и обновить мой пост) 4. Я прочитал эти страницы наизнанку и, похоже, не имел никакой удачи в получении ответов, которые мне нужны. Error Log: Uncaught Exception: 240: Требуется действительный пользователь – James

+0

Если у вас есть дополнительные вопросы по поводу любого из них, пожалуйста, задайте новый вопрос. Это не очень справедливо для пользователей stackoverflow, которые будут поражены четырьмя вопросами в одном, а затем задавать последующие вопросы каждому из них. – DMCS

2

Я сделал в Django:

Шаг получить Page_access_token:

facebook_page_id=360729583957969 
graph = GraphAPI(request.facebook.user.oauth_token.token)      
page_access_token=graph.get(facebook_page_id+'?fields=access_token') 

Таким образом, вы можете получить маркер доступа страницы.

Вы можете проверить эту вещь на Fb GraphAPIexplorer:

http://developers.facebook.com/tools/explorer 
GET URL: fb_page_id?fields=access_token 

, например: 360729583957969?fields=access_token , который даст вам page_access_token

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