2013-06-20 4 views
-1

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

require 'facebook.php'; 
$facebook = new Facebook(array(

    'appId' => 'myapplicationid', 
    'secret' => 'myapplicationsecret', 
)); 

$attachment = array(
     'access_token'=> "user access token", 
     'message' => "Message Goes Here", 
     'name' => 'Title goes here', 
     'caption' => "some text", 
     'link' => 'https://apps.facebook.com/somelink/', 
     'description' => 'some description', 
     'picture' => "http://example.com/test.jpg" 
     ); 
try { 
// Proceed knowing you have a user who is logged in and authenticated 
    $result = $facebook->api("/$userid/feed/",'post',$attachment); 
} catch (FacebookApiException $e) { 
error_log($e); 
//$user = null; 
} 

Во время аутентификации и получения маркера доступа я получил следующие разрешения от пользователя электронной почты, publish_stream, publish_actions. Я думаю, что publish_stream - это тот, который требуется, чтобы надавить на стену. Любая помощь в этом отношении будет высоко оценена.

+0

Обновите с ошибкой, что вы получаете? –

+0

Вот и все дело в том, что он не дает никакой ошибки и не публикует сообщение: S –

+0

вы пробовали делать var_dump переменной $ result, чтобы вы могли увидеть, что facebook api ничего не возвращает? –

ответ

1

Ошибка, скорее всего, из-за того, что SDK PHP использует токен доступа к приложениям и переопределяет маркер доступа, который вы размещаете. Попробуйте явно установить его с

$facebook->setAccessToken('USER_ACCESS_TOKEN');

Также var_dump или распечатать ошибку ($e), если ваш хостинг компания не дает его.

(также журналы ошибок доступны)

Error Logs

+0

Хорошо, теперь это работает! Спасибо огромное! Можете ли вы также посоветовать мне, как получить долгосрочный токен доступа для пользователя, потому что, возможно, это была проблема. Ток доступа истек –

+0

Просто для добавления Я использую метод API GRAPH, а не метод PHP SDK, чтобы получить токен доступа на данный момент https://www.facebook.com/dialog/oauth?client_id= " . $ App_id . "& redirect_uri =". urlencode ($ canvas_page). "& scope = email, publish_stream, publish_actions"; –

+0

Помогло посоветоваться с Nevermind в Facebook! Большое спасибо за указание в правильном направлении –

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