Facebook Graph API возвращает false - PullRequest
       4

Facebook Graph API возвращает false

5 голосов
/ 16 февраля 2011

Я работаю с запросами о дружбе. Когда пользователь отправляет запрос на добавление в друзья, я получаю request_id в качестве ответа. Однако, когда я использую это request_id (XXXX) следующим образом:

https://graph.facebook.com/XXXX/?access_token=YYYYYYYYY

возвращается:

false

access_token кажется правильным (используемый здесь только для примера), я что-то упустил? что означает false ? как получить объект JSON в качестве возвращаемых данных?

Ответы [ 2 ]

5 голосов
/ 09 июня 2011

Похоже, у вас есть какие-либо ограничения в вашей конфигурации страницы. Я предполагаю любое ограничение по стране или возрасту.

Удалите условие на странице FB и повторите попытку.

UPDATE:

Это только мое предположение, но я предполагаю, что причина, по которой он возвращает false в случае ограничений, заключается в том, что FB не может проверить, соответствует ли запрос ограничениям страницы. Я решаю проблему, используя OAuth 2.0

Документы Facebook для OAuth 2.0

А вот код для облегчения жизни:

ФАЙЛ 1:

require_once( 'oauth2callback/index.php' );

// Get likes from FB using auth
$likes = do_auth_FB( '[Object name]' );
echo 'Likes en Facebook: ' . $likes . '<br/>';

ФАЙЛ 2: (oauth2callback / index.php)

function do_auth_FB( $objectName) {

    // Setting required variables
    $fbAppID = '[App ID]';
    $fbSecret = '[App secret]';
    $redirectURI = '[URL to redirect]';
    $objectName = '[Object name]';

    // Getting code var
    $code = $_GET["code"];

    // Calling for code
    if( empty( $code ) ) {
        $urlcode = 'http://www.facebook.com/dialog/oauth?'
       . 'client_id=' . $fbAppID . '&redirect_uri=' . urlencode( $redirectURI )
       . '&client_secret=' . $fbSecret;

        echo "<script> top.location.href='" . $urlcode . "'</script>";
    }

    // Calling for token
    $urlToken = 'https://graph.facebook.com/oauth/access_token?'
       . 'client_id=' . $fbAppID . '&redirect_uri=' . urlencode( $redirectURI )
       . '&client_secret=' . $fbSecret . '&code=' . $code;

    $response = file_get_contents( $urlToken );
    $outputResponse = null;
    parse_str( $response, $outputResponse );

    // Calling for the required object
    $graph_url = 'https://graph.facebook.com/' . $objectName . '?access_token='
       . $outputResponse["access_token"];

    $objectStream = json_decode( file_get_contents( $graph_url ) );

    return $objectStream->likes;
}

В примере возвращается только лайк страницы

3 голосов
/ 17 февраля 2011

Попробуйте без последней косой черты:

https://graph.facebook.com/XXXX?access_token=YYYYYYYYY

Также попробуйте с токеном доступа к приложению.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...