Facebook:从用户ID获取公开照片

时间:2018-07-16 19:10:48

标签: android facebook-graph-api

我想通过给定用户的Facebook ID获得其公开照片。该用户先前已在我的Android应用中注册。我正在尝试使用我的访问令牌(在我在应用程序中的登录名给出)来执行此操作,但这给我一个权限错误。你有什么建议吗?

Bundle parameters = new Bundle();
    parameters.putString("fields","user_photos");
    GraphRequest request = new GraphRequest(
            AccessToken.getCurrentAccessToken(),
            "/" + "USER_ID" + "/photos",
            parameters,
            HttpMethod.GET,
            new GraphRequest.Callback() {
                public void onCompleted(GraphResponse response) {
                    //Response of photos
                }
            }
    );

2 个答案:

答案 0 :(得分:0)

user_photos是权限,而不是字段。您必须获得user_photos权限来授权用户才能获取他的照片。您可能没有这样做,这就是为什么您遇到权限错误的原因。不过最好知道确切的错误消息。

无论如何,这应该是正确的:

Bundle parameters = new Bundle();
parameters.putString("fields", "id,name,link");
GraphRequest request = new GraphRequest(
        AccessToken.getCurrentAccessToken(),
        "/me/photos",
        parameters,
        HttpMethod.GET,
        new GraphRequest.Callback() {
            public void onCompleted(GraphResponse response) {
                //Response of photos
            }
        }
);

使用/me代替用户ID,无论如何访问令牌都绑定到一个特定用户。

API参考中说明了可以使用的字段:https://developers.facebook.com/docs/graph-api/reference/v3.0/photo

答案 1 :(得分:-1)

尝试将“字段” 键替换为“范围”

parameters.putString("scope","user_photos");

此外,最新的Facebook隐私权政策更新可能就是这种情况。 我自己也遇到了类似的问题。