Как я могу показать профиль профиля пользователя, используя график facebook api?

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

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

Ответ 1

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

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

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

Ответ 2

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

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

Ответ 3

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

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

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

Ответ 4

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

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

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

Ответ 5

ИЗМЕНИТЬ. Так что facebook снова изменил его! Больше не искать по имени пользователя - изменили ответ ниже...

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

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

Facebook Graph picture doc

Ответ 6

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

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

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

Тханкс идет к Рейну, ты, да!

Ответ 7

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

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

Ответ 8

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

Ответ 9

Возвращаемые данные - это двоичные данные типа изображения. Если вы используете JavaScript для получения пользовательской фотографии, получите данные фотографии в виде типа BLOB-объекта в XMLHttpRequest, а затем получите URL-адрес BLOB-объекта из ответа. Для справки:

 var request = new XMLHttpRequest;
 var photoUri=config.endpoints.graphApiUri + "/v1.0/me/photo/$value";
 request.open("GET",photoUri);
 request.setRequestHeader("Authorization","Bearer "+token);
 request.responseType = "blob";
 request.onload = function (){
        if(request.readyState == 4 && request.status == 200){
               var image = document.createElement("img");
               var url = window.URL || window.webkitURL;
               var blobUrl = url.createObjectURL(request.response);
               image.src = blobUrl;
               document.getElementById("UserShow").appendChild(image);
        }
 };
 request.send(null);