Graph API: как получить информацию о текущем пользователе? - PullRequest
1 голос
/ 24 октября 2010

Я пытаюсь получить некоторую основную информацию о пользователе в скрипте PHP (идентификатор и имя).

Я пробовал следующие методы:

$retrieve = curl_init("https://graph.facebook.com/me?access_token=$accesstoken");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($retrieve, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$data = curl_exec($retrieve);
curl_close($retrieve);

и

$user = json_decode(file_get_contents(
         "https://graph.facebook.com/me?access_token=$accesstoken"))->me;

Метод cURL (прежний) просто перестал работать. Метод file_get_contents (последний) просто ничего не возвращает ...

Что может быть причиной этого? Я правильно использую cURL?

Ответы [ 2 ]

1 голос
/ 29 января 2011

для графа API вы можете использовать методы графа API скорее, чем curl следующий код захватывает информацию текущего пользователя

define('FACEBOOK_APP_ID', 'Your API ID');
define('FACEBOOK_SECRET', 'YOUR SECRET');
function get_facebook_cookie($app_id, $application_secret)
{
    $args = array();
    parse_str(trim($_COOKIE['fbs_' . $app_id], '\\"'), $args);
    ksort($args);
    $payload = '';
    foreach ($args as $key => $value)
    {
        if ($key != 'sig')
        {
            $payload .= $key . '=' . $value;
        }
    }
    if (md5($payload . $application_secret) != $args['sig'])
    {
        return null;
    }
    return $args;
}
$cookie = get_facebook_cookie(FACEBOOK_APP_ID, FACEBOOK_SECRET);
$user=json_decode(file_get_contents('https://graph.facebook.com/me?access_token='.$cookie['access_token']));

Его претти легко

0 голосов
/ 29 января 2011

Facebook не позволит вам использовать curl. У них есть API для этого.

Скопируйте ссылку и вставьте ее в браузер. Это будет работать. В Mozilla вы увидите результат в браузере, IE сохранит результат в виде файла. То есть речь идет не о недопустимом маркере доступа и т. Д. Это просто потому, что Facebook не отвечает на ваш запрос, когда он не приходит 1 - из веб-браузера, 2 - из API Facebook.

вот соответствующий вызов PHP на Facebook.

$attachment =  array('access_token' => $access_token);
$result=$facebook->api('/me', 'GET', $attachment);
$id = $result['id'];
$name=$result['name'];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...