我创建了一个Android应用程序,我想只获取Facebook用户的个人资料照片。
我尝试使用Graph API,但它提供了所有相册。有什么方法可以找到用户的个人资料照片吗?
我在Graph API中尝试了以下命令:
我/?字段=照片{专辑}
感谢。
答案 0 :(得分:0)
最后通过以下代码获得解决方案:
GraphRequest request = GraphRequest.newMeRequest(
AccessToken.getCurrentAccessToken(),
new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject object, GraphResponse response) {
String id;
try {
final JSONArray jsonArray = object.getJSONObject("albums").getJSONArray("data");
for (int i = 0; i < jsonArray.length(); i++) {
if (jsonArray.getJSONObject(i).getString("name").equals("Profile Pictures")) {
id = jsonArray.getJSONObject(i).getString("id"); // ID of Profile Pictures Album
new GraphRequest(
AccessToken.getCurrentAccessToken(),
"/" + id + "?fields=photos.limit(6){picture}",
null,
HttpMethod.GET,
new GraphRequest.Callback() {
public void onCompleted(GraphResponse response) {
try {
JSONObject jsonMain = response.getJSONObject();
JSONObject jsonGraphObj = jsonMain.getJSONObject("graphObject");
if (jsonGraphObj.has("photos")) {
if (jsonGraphObj.getJSONObject("photos").has("data")) {
JSONArray jsonArrayData = jsonGraphObj.getJSONObject("photos").getJSONArray("data");
for (int i = 0; i < jsonArray.length(); i++) {
if (i != 0) {
String url = jsonArrayData.getJSONObject(i).getString("picture");
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
).executeAsync();
}
}
} catch (Exception e) {
e.printStackTrace();
DialogsUtils.removeProgressDialog();
}
}
});
Bundle parameters = new Bundle();
parameters.putString("fields", "albums");
request.setParameters(parameters);
request.executeAsync();