当我使用图片ID时,我有点不确定如何从Facebook当前检索大型个人资料图片。我正在将此网址加载到我的imageview中。
http://graph.facebook.com/1454465268197338/picture?type=large
但它没有加载,当我输入它时虽然有效。
我在上面提到的是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
答案 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";