Запрос изображения профиля на Facebook, т.е. - PullRequest
1 голос
/ 30 ноября 2011

Когда я делаю запрос на изображение профиля, мой в этом случае я получаю некую закодированную строку в моем HttpResponseHandler. Приведенный ниже код является запросом на фотографию моего профиля.

private static AsyncHttpClient client = new AsyncHttpClient();

client.get("http://graph.facebook.com/1206433/picture",  fbPictureHandler);

Код ниже - мой обработчик для получения ответа. Я получаю ответ в виде строки, но я не уверен, что делать с этим объектом ответа. Я попытался преобразовать в байтовый массив и записать в «file.jpg», это не сработало. Мой главный вопрос: что мне делать с этим объектом ответа?

private static AsyncHttpResponseHandler fbPictureHandler = new AsyncHttpResponseHandler ()        
{
@Override
public void onStart() {
Log.d(TAG,"started picture handler");
}
@Override
public void onSuccess(String response) {
        //Not sure what to do here, have been unable to do anything with this Byte   //array
    byte[] imageBackground = response.getBytes();

    }
    @Override
    public void onFailure(Throwable error) {
        Log.d(TAG, "unable to retrieve picture");
        error.printStackTrace();
    }
    @Override
    public void onFinish() {
        Log.d(TAG,"Finished picture handler");
    }
};

Это PrintString объекта ответа

11-29 19:42:12.640: D/Yatter Facebook(3551): ÿØÿà��JFIF������������ÿþ��;CREATOR: gd-jpeg     v1.0 (using IJG JPEG v62), quality = 95

Любая помощь очень ценится и, надеюсь, это может помочь другим.

Спасибо,

Ответы [ 2 ]

2 голосов
/ 30 ноября 2011

Используйте следующий запрос вместо того, который вы отправляете

http://graph.facebook.com/1206433?fields=picture

Это вернет вам строку JSON в следующем формате, который содержит исходный путь к профилюimage.

{
   "picture": "http://profile.ak.fbcdn.net/hprofile-ak-snc4/260615_1206433_140418666_q.jpg"
}

Выполните синтаксический анализ этой строки, чтобы получить путь к «изображению», и используйте его в своем коде для получения изображения.


Вот пример примера запроса

ПРИМЕЧАНИЕ: http://profile.ak.fbcdn.net/hprofile-ak-snc4/260615_1206433_140418666_q.jpg получается путем анализа строки JSON на первом шаге.

WebRequest request = WebRequest.Create("http://profile.ak.fbcdn.net/hprofile-ak-snc4/260615_1206433_140418666_q.jpg");
WebResponse response = request.GetResponse();
Stream stream = response.GetResponseStream();
pictureBox1.Image = Image.FromStream(stream);

Это загрузит изображение в графическое окно в приложении формы Windows.

Если вам нужна помощь, дайте мне знать.

0 голосов
/ 15 июня 2014

вы можете использовать ? Redirect = false следовать '/ picture' для получения прямой ссылки

http://graph.facebook.com/+facebookid+/picture?redirect=false

и ответ содержит статическую ссылку URL (в формате json)

{"data":{
    "url":"https:\/\/fbcdn-profile-a.akamaihd.net\/hprofile-ak-frc1\/t1.0-1\/c126.33.409.409\/s50x50\/551571_4079894629426_190963543_n.jpg","is_silhouette":false}
}
...