Facebook无法获取所有用户照片

时间:2018-06-01 06:00:16

标签: android android-facebook

我想使用脸谱获取用户登录我的应用的所有照片。 我得到200错误代码

Bundle bundle = new Bundle();
    bundle.putString("fields", "user_photos");
    String id = com.facebook.Profile.getCurrentProfile().getId();
    new GraphRequest(
            AccessToken.getCurrentAccessToken(),
            "/" + id + "/photos",
            bundle,
            HttpMethod.GET,
            new GraphRequest.Callback() {
                public void onCompleted(GraphResponse response) {

                    try {
                        JSONArray jsonPhotos = response.getJSONObject().getJSONArray("data");
                        Log.d("", "onCompleted: ");

                    } catch (JSONException e) {
                        e.printStackTrace();
                    }

                }
            }
    ).executeAsync();

响应

{Response:  responseCode: 200, graphObject: {"data":[]}, error: null}

2 个答案:

答案 0 :(得分:1)

HTTP 200表示您的请求正常。

您需要https://graph.facebook.com/[uid]/albums?access_token=[AUTH_TOKEN]来获取用户所有相册的JSON数组。

你将从这里得到三件重要的东西 - 专辑ID,名字 - 专辑名称和类型 - 专辑类型。

所需的权限是user_photos

个人资料照片位于"个人资料照片"专辑。要获取个人资料相册,您需要查看相册数组,遍历JSON结果集,直到您获得名为=个人资料图片和类型=个人资料的相册。获取此对象的ID。这是个人资料图片专辑。

现在您可以访问它,就像访问任何其他相册一样。也就是说,https://graph.facebook.com/[ALBUM_ID]/photos?access_token=[AUTH_TOKEN]这将列出用户上传的所有个人资料图片。

参考:http://developers.facebook.com/docs/reference/api/

答案 1 :(得分:0)

您是否检查过用户是否允许您提供照片?