使用userID获取大型个人资料照片Facebook

时间:2015-06-06 02:38:10

标签: java android facebook facebook-graph-api

当我使用图片ID时,我有点不确定如何从Facebook当前检索大型个人资料图片。我正在将此网址加载到我的imageview中。

http://graph.facebook.com/1454465268197338/picture?type=large

但它没有加载,当我输入它时虽然有效。

https://fbcdn-profile-a.akamaihd.net/hprofile-ak-xft1/v/t1.0-1/p200x200/11014854_1403982213245644_5725357301610737602_n.jpg?oh=9d95140ca58c8e13a950e14f63018ff4&oe=55F8A88F&gda=1442905098_49d2c7ec583d417722e02a10206c0fb6

我在上面提到的是REDIRECTED URL。问题是我无法使用userID生成,因为我正在使用它。

@Override
    public void onBindViewHolder(ContactViewHolder contactViewHolder, int i) {
        Event ci = contactList.get(i);
        contactViewHolder.vName.setText(ci.name);

        TinyDB userinfo =new TinyDB(context);

        String user_id = userinfo.getString("id");
        profile_pic_url ="http://graph.facebook.com/"+user_id+"/picture?type=large";

        Picasso.with(context)
                .load(profile_pic_url)
                .resize(225, 225)
                .centerCrop()
                .into(contactViewHolder.vProfilePic);

    }

注意profile_pic_url。

所以最终,我怎样才能获得重定向的网址(因为我知道这有效)?

OR

如何从用户那里获得一个大型的Facebook个人资料图片网址,因为请记住facebook的android id,因为我从中得到了什么:

                parameters.putString("fields", "id,name,link,picture,friends");

真的很小。

我尝试使用

Java - How to find the redirected url of a url?

https://developers.facebook.com/docs/graph-api/reference/user/picture/

不幸的是没有运气,

帮助表示赞赏。

TYTY

2 个答案:

答案 0 :(得分:5)

尝试

parameters.putString("fields", "id,name,link,picture.type(large),friends");

- 这应该可以获得个人资料图片的大版本。

(这使用Field Expansion语法来更精确地指定您想要的数据。)

答案 1 :(得分:0)

您可以使用下一个代码获得最小宽度为1000 pic的高照片,以及根据宽高比给出的高度:

GraphRequest request = GraphRequest.newMeRequest(
                            loginResult.getAccessToken(),
                            new GraphRequest.GraphJSONObjectCallback() {
                                @Override
                                public void onCompleted(JSONObject object, GraphResponse response) {  
                                    String profileImg = "https://graph.facebook.com/" + loginResult.getAccessToken().getUserId() + "/picture?type=large&width=1000";                                     
                                }
                            });

                    Bundle parameters = new Bundle();
                    parameters.putString(AuthConstants.FIELDS,
                            AuthConstants.ID + "," +
                                    AuthConstants.BIRTHDAY + "," +
                                    AuthConstants.FIRST_NAME + "," +
                                    AuthConstants.LAST_NAME + "," +
                                    AuthConstants.GENDER);

                    request.setParameters(parameters);
                    request.executeAsync();

                }

哪里

public static final String FIELDS = "fields";
public static final String ID = "id";
public static final String BIRTHDAY = "birthday";
public static final String FIRST_NAME = "first_name";
public static final String GENDER = "gender";
public static final String LAST_NAME = "last_name";