Как я могу отобразить изображение профиля пользователя с помощью api Facebook graph?


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

Я знаю, что могу сделать это с помощью 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 graph, и я наверное, делает несколько очень любительских ошибок!

8   70   2010-06-10 12:48:52

8 ответов:

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

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

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

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

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

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

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

тоже будет работать.

обновление: FB больше не поддерживает это. Просто набор предопределенных размеров.

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

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

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

редактировать: Так facebook изменил его снова! Больше нет поиска по имени пользователя-исправили ответ ниже...

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

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

Facebook Graph picture doc

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

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

//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 . "\" />";

Thanx идет к Рейну, ты да человек!

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

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

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