正在获取没有图片来源的 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/
在我的应用程序中,我试图在其他人访问他们的个人资料时显示我的用户的 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/