Получить фотографию профиля пользователя facebook

Это мой php-код, чтобы получить изображение профиля пользователя Facebook, когда я зашел на сайт через Facebook. Но фотографии не отображаются. Я получаю испорченное изображение.

<?php
session_start();

require_once 'vendor/autoload.php';

Facebook\FacebookSession::setDefaultApplication('appid', 'appcode');
$facebook = new Facebook\FacebookRedirectLoginHelper('http://example.com/index.php/');try
{
if($session = $facebook->getSessionFromRedirect())
{
$_SESSION['facebook'] = $session->getToken();
header('Location: ../index.php');
}
if(isset($_SESSION['facebook']))
{
$session = new Facebook\FacebookSession($_SESSION['facebook']);
$request = new Facebook\FacebookRequest($session, 'GET', '/me');
$request = $request->execute();
$user = $request->getGraphObject(Facebook\GraphUser::className());
echo "Name: " . $user->getName();
echo "<br/>";

echo '<img src=\"https://graph.facebook.com/". $user. /picture?type=large\">';

}
}

catch(Facebook\FacebookRequestException $e)
{

echo " Error: " . $e->getMessage();
}
catch(\Exception $e)
{

}
?>

0

Решение

Просто используйте следующий путь Graph через GET-запрос:

/{user_id}?fields=picture.type(large),id,name

поле тип может быть одним из следующих значений:

  • маленький
  • нормальный
  • большой
  • площадь

Или используя значение ширины и / или высоты следующим образом:

/{user_id}?fields=picture.width(200).height(200),id,name

Также вы можете добавить перенаправлять = 0 пары.
По умолчанию край изображения возвращает изображение вместо ответа JSON. Если вы хотите, чтобы край изображения возвращал JSON, который описывает изображение, установите redirect = 0 при выполнении запроса.

Таким образом, вы получите ответ JSON:

{
"picture": {
"data": {
"height": 120,
"is_silhouette": false,
"url": "https://scontent.xx.fbcdn.net/hprofile-xaf1/v/t1.0-1/c53.10.120.120/165675_138088076251005_752993_n.jpg?oh=a9450bf53f2d2294531e11ae28be99c1&oe=56C740A5",
"width": 120
}
},
"id": "138087416251071",
"name": "Zenonis",
}
1

Другие решения

Если вы настроили приложение Facebook, у вас есть «Идентификатор приложения» и «Секрет приложения» (которые вы указываете как «Идентификатор» и «Код»).

Вы можете использовать обе эти переменные, чтобы получить изображение пользователя со следующим URL:

$url = 'https://graph.facebook.com/v2.0/' . $user_id . '/picture?redirect=0&type=large&access_token=' . $app_id . '|' . $app_secret;

Затем вы можете распечатать этот URL в атрибуте src:

<img src="<?php print $url; ?>" />
-2

По вопросам рекламы [email protected]