【问题标题】:Fetch Friends profile image from restfb从restfb获取好友头像
【发布时间】:2012-02-05 19:22:54
【问题描述】:

我正在使用下面的代码来获取使用 Resfb 的朋友的个人资料图片。我也收到了带有名称 ID 和图像的响应。请有人尽快帮助我了解如何从这些数据中获取图像。

代码

Connection<User> myFriends = facebookClient.fetchConnection("me/friends", User.class,Parameter.with("fields", "id, name,picture"));

回应

"data":[{"id":"554603591","name":"Arjun Rao","picture":"http:\/\/profile.ak.fbcdn.net\/hprofile-ak-snc4\/211391_554603591_2022493_q.jpg"}"

谢谢

【问题讨论】:

    标签: java image profile restfb


    【解决方案1】:

    你可以使用restfb来解析Json-Objects:

    JsonObject obj = new JsonObject(SERVER_RESPONSE);
    try {
         String pictureURL = obj.getString("picture");
        }
    catch(JsonException e) {
           // key 'picture' not found
           e.printStackTrace();
    }
    

    【讨论】:

      【解决方案2】:

      从 Graph API 如何在“数据”对象中返回(某些对象)的意义上说,RestFB 是否不是最新的?

      我设法解决了这个自定义类:

      public class DataPictureHolder {
          @Facebook("data")
          public ProfilePictureSource picture;
      }
      

      【讨论】:

        【解决方案3】:

        你知道如何解析响应吗?

        如果是,只需获取图像的 URL,打开 URLConnection 并执行 getInputStream()(此代码为 in this SO answer)。

        使用InputStream,您可以保存到文件或发送给客户端。

        【讨论】:

        • 考虑为链接添加上下文。详情请参阅How to Answer
        • 我认为这是一个很好的答案。我不是来评判是对是错,但就质量而言,看起来还不错。