Проблема при попытке опубликовать в Facebook через AMFPHP - PullRequest
0 голосов
/ 19 октября 2010

Я использую AMFPHP и написал небольшую функцию в php для публикации в Facebook при каждом вызове:

function postear($pregunta,$winoption,$loseoption) {
    require_once("../../facebook.php");
    Facebook::$CURL_OPTS[CURLOPT_SSL_VERIFYPEER] = false;

    $facebook = new Facebook(array(
        'appId'  => 'xxxxxxxxxxxxx',
        'secret' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxx',
        'cookie' => false
    ));

    $session = $facebook->getSession();
    $token = $session['access_token'];

    //echo "Post successful !"; 
    $facebook->api( '/me/feed', 'POST', array ( 'message' => '','link' => 'http://www.facebook.com/apps/myapp','name' => 'dummy name'));
}

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

message = "faultCode: AMFPHP_RUNTIME_ERROR faultString: 'Для запроса информации о текущем пользователе должен использоваться активный токен доступа.'

Я не очень знаком с API API графика в Facebook и, в некотором смысле, сбит с толку, потому что иногда я могу опубликовать исправление, вызвавмоя функция, а иногда и выдает ошибку, описанную выше. Может быть, мне нужно каким-то образом передать токен в мой вызов публикации? И какова цель аргумента «cookie» в моем вызове, чтобы войти в меня в facebook?.

Кроме того, маркер доступа является уникальным?, Или каждый раз, когда кто-то входит в приложение, генерируется другой маркер?

Спасибо за вашу ориентацию и спасибо за любую помощь.

1 Ответ

1 голос
/ 19 октября 2010

Если вы не запрашивали автономный доступ к приложению, которое вы создали для пользователя, с которым вы пытаетесь пройти аутентификацию, то вам нужно войти в Facebook, чтобы приложение заработало.Это не имеет ничего общего с AMFPHP.

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

    if (isset($_POST['tt'])){
        try {
            $statusUpdate = $facebook->api('/me/feed', 'post', array('message'=> $_POST['tt'], 'cb' => ''));
        } catch (FacebookApiException $e) {
            d($e);
        }

Обратите внимание, что $ _POST ['tt'] - это переменная, установленная формой в примере кода.Например, вы можете использовать все, что захотите.

$statusupdate = $facebook->api('/me/feed', 'post', array('message'=>$myMessage, 'cb'=>'');

Обратите особое внимание на шаг 3 .В этом примере кода они дают несколько тегов FBML, которые позаботятся о размещении кнопки входа / выхода на вашу страницу, которая будет обрабатывать вход в систему пользователя.Тогда вам не нужно поддерживать еще одну вкладку в браузере, на которой вы вошли в Facebook.Удачи!

...