Задать вопрос

Почему Graph.facebook.com/me возвращает true?

Второй день воюю с FB Graph API :)

Не хочется пользоваться PHP SDK, так как там очень что-то заморочено с сессиями и у меня за сутки внедрить его в CI не получилось. Соответственно, пишу сам. И полезнее, и понятнее.

На данный момент вроде получилось с авторизацией, по крайней мере access_token я получаю верный.
Я его хочу записать в БД для дальнейших процедур (планирую постить в акк и страницы пользователя), но мне нужен fb_id пользователя.

Сразу после получения токена пытаюсь отправить запрос к API, метод выглядит примерно так:
$graph_url= "https://graph.facebook.com/me";
$appsecret_proof= hash_hmac('sha256', $access_token, $client_secret);
$postData = '';
$postData = "&appsecret_proof=" .$appsecret_proof;
$postData .= "&access_token=".$access_token;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $graph_url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_USERAGENT, 'facebook-php-3.2');
$output = curl_exec($ch);
curl_close($ch);
return ($output);


Вот только проблема в том, что в результате вместо json-объекта с данными пользователя – "true".
Что я делаю не так?
  • Вопрос задан
  • 2916 просмотров
Подписаться 2 Оценить 2 комментария
Решения вопроса 1
taboo1387
@taboo1387 Автор вопроса
А теперь внимание, правильный ответ:
$add = http_build_query($params, NULL, '&');
$graph_url= "https://graph.facebook.com".$request.'?'.$add;
$appsecret_proof= hash_hmac('sha256', $access_token, $client_secret);
$postData = '';
$postData = "&appsecret_proof=" .$appsecret_proof;
$postData .= "&access_token=".$access_token;
$ch = curl_init($graph_url.$postData);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_VERBOSE, true);
$output = curl_exec($ch);
curl_close($ch);
return json_decode($output);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы