Проблема с получением изображения профиля из Facebook Graph API - PullRequest
2 голосов
/ 23 сентября 2010

Подготовили фундамент, но теперь я обнаружил, что хочу поиграться с фотографиями профиля пользователя моего приложения
;Я в тупике .... и уже несколько часов ...

Во-первых, мой oauth_token / access_token получен с использованием официального (хотя Alpha; -)
Facebook C #SDK и использовать только Graph API .

FBapi .Get ("/" + friend.Dictionary ["id"]. String + "/ picture");

приводит к исключению из-за не возврата JSONObject, и

с использованием полного http://graph.facebook.com/me/picture перенаправляется / переводится в URL изображения.

Попытка более прямого подхода также не удалась:

WebClient wcImg = new WebClient ();

wcImg.DownloadFile ("/" + friend.Dictionary ["id"]. String + "/ picture", "name_blame.jpg");

В моем вопросе отсутствуют некоторые детали;Прошу прощения, я очень устал и отредактирую позже, если начнется шум.

Идеи? Приложение: Мальчик, пораженный слепотой кода, я действительно был!Тем не менее, ваша чувствительность дала мне то, что мне было нужно (Zynga, дрожь на моем холсте ;-).

Ради любопытства ... кажется, что для профильных изображений нет шаблона JSON (простите за отсутствие языка)?Тогда как можно получить выделенное графическое API-изображение этой фотографии профиля (если доступно)?

Ответы [ 3 ]

4 голосов
/ 23 сентября 2010

Картинка в Graph API - немного особенное животное. Он не возвращает JSON, он напрямую переходит к изображению. Это было сделано для того, чтобы вы могли использовать этот URL прямо в HTML:

<img src="http://graph.facebook.com/<UID>/picture"> - displays avatar

Теперь, если вам нужно узнать фактический URL-адрес изображения, на которое оно перенаправляется, есть 2 варианта:

  1. Чтение заголовков перенаправления из URL этого графа.
  2. Использовать FQL:

    select pic_square from user where uid=12345
    

Существует много другой информации о пользователе, использующей FQL (включая изображения других размеров).

3 голосов
/ 23 сентября 2010

Также, если Вы хотите показать большую фотографию профиля, используйте это:

http://graph.facebook.com/<UID>/picture?type=large
1 голос
/ 13 июля 2011

Вы можете получить ВСЕ профили друзей (прямые ссылки на фотографии) в одном запросе GET:

https://graph.facebook.com/me/friends?access_token=[oauth_token]&fields=name,id,picture

Затем используйте Json для декодирования строки .. и это все ...

NJoy ^ _ ^

...