2012-02-20 2 views
5

Я хочу опубликовать на стене страницы Facebook как страницу с использованием PHP. У меня есть access_token по ссылкам ниже.Опубликовать в facebook page wall как страница

https://graph.facebook.com/oauth/authorize?type=user_agent&client_id=123456789&redirect_uri=http%3A%2F%2Fmysite.net&scope=publish_stream,manage_pages,offline_access 
https://graph.facebook.com/me/accounts?access_token=... 

Я использую этот простой код:

$appid  = ""; 
$secret  = ""; 
$pageid  = ""; 
$access_token = ""; 

require_once("facebook-php-sdk/src/facebook.php"); 

$facebook = new Facebook(array(
    'appId' => $appid, 
    'secret' => $secret 
)); 

try { 
    $args = array(
     'access_token' => $access_token, 
     'message'  => 'Test', 
     'link'   => 'http://www.test.com', 
     'description' => 'Test' 
    ); 

    $post_id = $facebook->api("/$pageid/feed","post",$args); 

} catch (FacebookApiException $e) { 
    error_log($e); 
} 

И это ошибка я получаю:

OAuthException: (#200) Posts where the actor is a page cannot also include a target_id 

Но размещение/я/корм не будет работать ни один. Все решения, которые я искал в googled, больше не работают, официальная документация не помогла. Я получил его работу при публикации в качестве пользователя (а не страницы) и с помощью javascript api (требуется «совместное действие щелчка» пользователем).

Кто-нибудь знает решение для автоматического сообщения на страницу fb как страницу? Затраченная пара неприятных дней, пытаясь понять это -_-

Спасибо,

А.

+0

PHP-код хороший, но у меня есть неправильный access_token. Я получил правильный вариант с другим приложением (простой facebook connect - плагин wordpress). Не успевайте поиграть с получением правильного доступа:/ – akashic

ответ

5

Страница не может оставлять к стенам пользователя (именно поэтому вы получаете OAuthException, который говорит «как страница , вы не можете установить target_id "). Вам нужно будет сначала создать приложение и получить разрешение пользователя (publish_stream) для публикации в своем канале через указанное приложение.

+1

Спасибо за ответ. Я пытаюсь опубликовать на стене страницы (таким образом/$ pageid/feed и $ access_token). У меня уже создано приложение (установите разрешения). Я присмотрюсь ближе к stream.publish завтра. – akashic

+0

Хорошо, нашел еще немного времени. Как написано в моем первом сообщении, у моего приложения уже есть права publish_stream (2-я строка). Мне удалось опубликовать его через stream.publish, но поскольку API REST устарел, я постараюсь сделать это с помощью opengraph. – akashic

3

Предполагаю, что у вас есть некоторые знания о приложении и как работает проводка.

1.Вы должны получить Page token и использовать это на массиве.

2.you использование этого

"/$pageid/feed" 

попробовать использовать этот

$facebook->api($pageID . '/feed','POST' 

Благодаря ...

+0

Если вы посмотрите на мой пост, вы увидите, что 1) у меня уже есть токен доступа и 2) я запрашиваю api по $ facebook-> api ("/ $ pageid/feed", "post", $ args); – akashic

+0

@akashic попробуйте разделить $ pageid –

+0

@akashic проверьте эту ссылку на эту же проблему http://jorgealbaladejo.com/2011/06/13/publish-to-facebook-page-or-applications-wall-with- PHP / –

2

У меня была та же проблема. Причина в том, что я был администратором более чем одной страницы, и я попытался опубликовать с токеном другой страницы.