Facebook Graph API, получать информацию анонимно - PullRequest
0 голосов
/ 29 октября 2010

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

Я хочу написать PHP-код, использующий API-интерфейс Facebook Graph, чтобы найти профиль (например, по имени), а затем перехватить эту информацию в местном магазине.Я пересмотрел API графа Facebook, но в нем используется OAuth и множество ненужных задач.Просто я не хочу использовать API от имени конкретной учетной записи пользователя.Я просто хочу использовать его анонимно или даже с примером пользователя, который не обязательно должен дружить с этими пользователями, которых я ищу.Буду признателен, если кто-нибудь скажет мне, выполнимо это или нет, или даже попросит уточнить мой вопрос немного больше:)

Заранее спасибо.

Ответы [ 2 ]

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

Конечно, вот быстрый способ получить нужную информацию:

<?PHP

define('FACEBOOK_APP_ID', 'yourappIDhere');
define('FACEBOOK_SECRET', 'yourFBsecretkeyhere');

function get_facebook_cookie($app_id, $application_secret) {
    $args = array();
    if(isset($_COOKIE['fbs_' . $app_id])){
        parse_str(trim($_COOKIE['fbs_' . $app_id], '\\"'), $args);
    }

    ksort($args);
    $payload = '';
    foreach ($args as $key => $value) {
        if ($key != 'sig') {
            $payload .= $key . '=' . $value;
        }
    }
    if(isset($args['sig'])){
        if (md5($payload . $application_secret) != $args['sig']) {
            return null;
        }
        else
            return $args;
    }
    else
        return null;
}

$cookie = get_facebook_cookie(FACEBOOK_APP_ID, FACEBOOK_SECRET);

?>


<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
  xmlns:fb="http://www.facebook.com/2008/fbml">
<head>
</head>
<body>
<?php if ($cookie) { ?>
  Your user ID is <?PHP echo $cookie['uid']; ?>
<?PHP 
    $user = json_decode(file_get_contents('https://graph.facebook.com/me/access_token=' . $cookie['access_token']))->data;

} else { 
?>
  <fb:login-button perms="email"></fb:login-button>
<?php } ?>

<div id="fb-root"></div>
<script src="http://connect.facebook.net/en_US/all.js"></script>
<script>
  FB.init({appId: '<?= FACEBOOK_APP_ID ?>', status: true,
           cookie: true, xfbml: true});
  FB.Event.subscribe('auth.login', function(response) {
    window.location.reload();
  });
</script>
</body>
</html>

После того, как упомянуто выше Fair, вот тот самый БАЗОВЫЙ код, который вам нужен для настройки аутентификации.

HTH:)

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

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

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

Попробуйте здесь , чтобы использовать Graph API для поиска пользователей.Вы увидите, что они используют токен доступа.Попытка поиска для пользователя без токена доступа приведет к следующему сообщению об ошибке.

{
    "error": {
    "type": "OAuthException",
    "message": "An access token is required to request this resource."
    }
}

Обновление :

Из FacebookДокументация для разработчиков:

"Аутентификация Facebook позволяет вашему приложению взаимодействовать с Graph API от имени пользователей Facebook и обеспечивает мощный механизм единого входа для Интернета, мобильных устройств и настольных компьютеровapps. "

Процесс аутентификации не так уж и сложен.

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