Как решить ошибку «Этот метод должен вызываться с приложением access_token»? - PullRequest
1 голос
/ 19 октября 2011

Я тестирую api баллов в моем тестовом приложении.

Итак ... Я подписал приложение со следующими разрешениями.

publish_stream,
publish_actions,
user_status,
user_photos

После входа я запрашиваю следующий API в PHP

$loggedUser = $Facebook->getUser();
$scoreUpdate = $Facebook->api('/'.$loggedUser."/scores", 'post', array('score'=> 100));

Я получаю следующую ошибку.

Этот метод должен вызываться с приложением access_token

Итак, я проверил, что SDK отправляет на Facebook, и подтвердил, что он отправляет «access_token» вместе с моими параметрами.

В чем проблема в этом случае?

Ответы [ 3 ]

5 голосов
/ 21 ноября 2011

приложение access_token вы можете просто сделать так:

$facebook->api('/me/scores', 'POST', array( 'score' => 100, 'access_token' => $facebook->getAppId().'|'.$facebook->getApiSecret() ));

вуаля

2 голосов
/ 05 марта 2012
$ret_obj = $fb->api( '/' . $fb->getUser() . '/scores', 'POST', array(
    'score' =>  100,
    'access_token' => $fb->getAppId().'|'.$fb->getApiSecret()
));

Если вы укажете токен доступа к приложению в параметре access_token, вы в конечном итоге потеряете возможность использовать / me, поэтому вам нужно будет точно указать идентификатор пользователя.В противном случае вы получите эту ошибку: «OAuthException: активный токен доступа должен использоваться для запроса информации о текущем пользователе», как описано здесь: facebook Uncaught OAuthException: активный токен доступа должен использоваться для запроса информации о текущем пользователе

2 голосов
/ 19 октября 2011

Теперь есть два токена: токен пользователя ... и токен приложения . Тебе нужно позже.

Теперь PHP-SDK добавит пользователя access_token, если найдет тот, который Я думаю ваш случай Предлагаю вам прочитать официальный Facebook инструкции по публикации баллов

Пример взят из моего урока :

$APPLICATION_ID = "APP_ID";
$APPLICATION_SECRET = "APP_SECRET";

$token_url =    "https://graph.facebook.com/oauth/access_token?" .
                "client_id=" . $APPLICATION_ID .
                "&client_secret=" . $APPLICATION_SECRET .
                "&grant_type=client_credentials";
$app_token = file_get_contents($token_url);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...