正在获取没有图片来源的 Facebook 封面照片 returns JSON

Fetching Facebook Cover photo returns JSON without the picture's source

在我的应用程序中,我试图在其他人访问他们的个人资料时显示我的用户的 Facebook 封面照片。

问题是有时会出现错误,但大多数时候 JSON 响应不包含封面照片的来源。我需要任何许可吗?或者有什么问题吗?

回复:

FB Response:{Response: responseCode: 200, graphObject: {"id":"1159287107464088"}, error: null}

我用来获取封面照片的方法,如 FB 文档中所示:

 FacebookSdk.sdkInitialize(this.getApplicationContext(), new FacebookSdk.InitializeCallback() {
            @Override
            public void onInitialized() {
                accessToken = AccessToken.getCurrentAccessToken();

                if (accessToken != null) {
                    Bundle params = new Bundle();
                    params.putString("fields", "cover");
                    new GraphRequest(
                            AccessToken.getCurrentAccessToken(),
                            "other_users_fbId",
                            params,
                            HttpMethod.GET,
                            new GraphRequest.Callback() {
                                public void onCompleted(GraphResponse response) {

                                    FacebookRequestError error = response.getError();

                                    if (error != null) {
                                        http.sendIssueToServer("error: " +
                                                error.getErrorMessage());

                                    } else {

                                        try {
                                            Log.i("LoginActivity", response.toString());
                                            JSONObject obj = response.getJSONObject();

                                            JSONObject cover = obj.getJSONObject("cover");
                                            String src = cover.getString("source");
                                            imageLoader.displayImage(src, coverIv);

                                        } catch (Exception e) {
                                            e.printStackTrace();
                                            http.sendIssueToServer("FB Response:" + response.toString());
                                        }
                                    }
                                }
                            }

                    ).executeAsync();
                }

            }
        });

您不需要任何许可,只需要授权用户的 App Scoped ID - 或者只需使用 /me。 JSON 应如下所示 (/me?fields=cover):

{
  "cover": {
    "id": "xxx",
    "offset_y": 0,
    "source": "https://scontent.xx.fbcdn.net/..."
  },
  "id": "xxx"
}

如果有时看起来不是这样,请确保用户确实有封面照片或提交错误:https://developers.facebook.com/bugs/