Я хотел бы отобразить изображение профиля пользователя внутри моей страницы холстов приложений, есть ли способ сделать это с помощью графика api?
Я знаю, что могу сделать это с помощью FBML, но я также хотел бы передать профиль pic в флеш-игру, которую я создаю, поэтому мне нужно будет получить профиль pic из api и отправить его как переменную, вот код I до сих пор,
$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, и я, вероятно, делаю несколько очень любительских ошибок!
Зная идентификатор пользователя, URL-адрес для их профиля:
http://graph.facebook.com/[UID]/picture
где вместо [UID] вы поместите свою переменную $ uid, и этот URL-адрес можно передать в flash
для получения разных размеров вы можете использовать параметр типа:
Вы можете указать желаемый размер изображения с аргументом типа, который должен быть одним из квадратных (50×50), малым (шириной 50 пикселей, переменной высотой) и большим (ширина около 200 пикселей, переменная высота): http: // graph .facebook.com / squall3d / изображение? type = большой .
Вы также можете изменить размер изображения профиля, предоставив параметры, как показано ниже.
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 . "\" />";
Прекрасно работает для меня
EDIT : Так что facebook снова изменил его! Больше не искать по имени пользователя – изменили ответ ниже …
https://graph.facebook.com/{{UID}}/picture?redirect=false&height=200&width=200
например 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 . "\" />";
Тханкс идет к Рейну, ты, да!
У меня возникла проблема с получением фотографий профиля при использовании CURL. Я подумал, что какое-то время было неправильно реализовано API Facebook, но мне нужно добавить немного к моей CURL:
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
Очень важно то, что, как и другой запрос API Графа, вы не получите данные JSON в ответ, а вызов возвращает HTTP REDIRECT в URL-адрес профиля pic. Итак, если вы хотите получить URL-адрес, вам нужно либо прочитать HTTP-заголовок ответа, либо использовать FQL.