0

我正在使用 facebook4j 加载主页帖子facebook.getHome(),我正在获取个人资料图片和帖子图片,如下所示:

facebook4j.User fromUser = facebook.getUser(fbHomePost.getFrom().getId(), 
new Reading().fields("picture"));
if (fromUser.getPicture() != null)                      
  facebookUserPostDto.setProfileImage(fromUser.getPicture().getURL().toURI().toString());
if (fbHomePost.getPicture() != null)
  facebookUserPostDto.setImageLocation(fbHomePost.getPicture().toURI().toString());

一切运行良好,但我从 URL 获得的图像很小且分辨率低。知道如何使用 facebook4j API 从 facebook 获取“大”图像吗?facebook 可以提供不同的图片尺寸API 参考 › Graph API › 图片

谢谢

4

2 回答 2

0

好的,我从 facebook4j 谷歌小组收到了关于如何 从我的 facebook 帖子中检索不同图像大小的回复

萨米哈弗什

布雷特

于 2013-04-17T09:13:40.237 回答
0

好的,首先您必须将user_photos添加到您的范围并确保您使用的是有效的访问令牌而不是 Graph API Explorer 令牌

OAuthService service = new ServiceBuilder()
                                      .provider(FacebookApi.class)
                                      .apiKey(apiKey)
                                      .apiSecret(apiSecret)
                                      .callback("xxxx")
                                      .scope("publish_actions,user_photos ")
                                      .build();

然后试试这个:(经过测试)

for(Post p : feed){
        System.out.println("********************");
        String type = p.getType();
        System.out.println("type :"+type);
        String idPicVid = p.getObjectId();
        if(type.matches("photo")){
           System.out.println("idPicVid "+idPicVid);
                try{
                    Photo pic = facebook.getPhoto(idPicVid);
                    System.out.println(pic.toString());
                    System.out.println("source "+pic.getSource());
                    System.out.println("picture "+pic.getPicture());
                }catch (Exception e) {
                    e.printStackTrace();
                }
        }
}
于 2014-07-06T00:36:30.543 回答