Как я могу отобразить изображение профиля пользователя, используя api facebook graph? - PullRequest
70 голосов
/ 10 июня 2010

Я хотел бы отобразить фотографию профиля пользователя на странице холста моего приложения, есть ли способ сделать это с помощью графика api?

Я знаю, что могу сделать это с помощью FBML, но я также хотел бы передать изображение профиля во флеш-игру, которую я делаю, поэтому мне нужно было бы получить изображение профиля из API и отправить его как переменную, вот код, который у меня есть,

$facebook = new Facebook(array(
    'appId'  => FACEBOOK_APP_ID,
    'secret' => FACEBOOK_SECRET_KEY,
    'cookie' => true,
    'domain' => 'myurl/facebook-test'
));

$session = $facebook->getSession();

        $uid = $facebook->getUser();
        $me = $facebook->api('/me');

        $updated = date("l, F j, Y", strtotime($me['updated_time']));

        echo "Hello " . $me['name'] . $me['picture'] . "<br />";
  echo "<div style=\"background:url(images/bg.jpg); width:760px; height:630px;\">" . "You last updated your profile on " . $updated . "</div>" . "<br /> your uid is" . $uid;

$me['picture'], похоже, не работает, но я все еще очень плохо знаком с графиком API, и, возможно, я делаю несколько очень любительских ошибок!

Ответы [ 8 ]

125 голосов
/ 10 июня 2010

Зная идентификатор пользователя, URL его изображения профиля: -

http://graph.facebook.com/[UID]/picture

где вместо [UID] вы размещаете переменную $ uid, и этот URL может быть передан во флэш-память

81 голосов
/ 13 августа 2010

чтобы получить разные размеры, вы можете использовать параметр типа:

Вы можете указать желаемый размер изображения с аргументом типа, который должен быть одним из квадратов (50x50), маленьким (ширина 50 пикселей,с переменной высотой) и большой (шириной около 200 пикселей, с переменной высотой): http://graph.facebook.com/squall3d/picture?type=large.

22 голосов
/ 10 сентября 2012

Вы также можете изменить размер изображения профиля, предоставив параметры, как показано ниже.

https://graph.facebook.com/[UID]/picture?width=140&height=140

тоже подойдет.

7 голосов
/ 12 мая 2011
  //create the url
  $profile_pic =  "http://graph.facebook.com/".$uid."/picture";

 //echo the image out
 echo "<img src=\"" . $profile_pic . "\" />"; 

отлично работает у меня

4 голосов
/ 04 февраля 2015

РЕДАКТИРОВАТЬ : Таким образом, Facebook изменил это снова!Больше не нужно искать по имени пользователя - изменили ответ ниже ...

https://graph.facebook.com/{{UID}}/picture?redirect=false&height=200&width=200
  • UID = идентификатор профиля или страницы
  • редирект либо возвращает json (false), либо перенаправляет наimage (true)
  • высота и ширина - это обрезка
  • не требует аутентификации

например https://graph.facebook.com/4/picture?redirect=false&height=200&width=200

Facebook Graphфото документа

3 голосов
/ 10 июня 2010

Вот код, который работал для меня!

Предполагая, что у вас есть действующий сеанс,

//Get the current users id
$uid = $facebook->getUser();

//create the url
$profile_pic =  "http://graph.facebook.com/".$uid."/picture";

//echo the image out
echo "<img src=\"" . $profile_pic . "\" />";

Спасибо, Рейн, ты, чувак!

1 голос
/ 27 октября 2012

Одна очень важная вещь заключается в том, что, как и в случае другого API-запроса Graph, вы не получите данные JSON в ответ, скорее, вызов вернет HTTP REDIRECT на URL-адрес изображения профиля.Поэтому, если вы хотите получить URL, вам нужно либо прочитать HTTP-заголовок ответа, либо использовать FQL.

1 голос
/ 18 августа 2011

У меня возникла проблема с загрузкой фотографий профиля при использовании CURL.Некоторое время я думал, что что-то не так с моей реализацией API Facebook, но мне нужно добавить немного к моему CURL под названием:

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...