我正在开发一个使用 Facebook 进行用户登录的应用程序。该过程已成功完成,但是当我向 Facebook 询问用户信息(具有相应权限)时,我得到了除了他的封面图片之外的所有内容。我总是得到的响应是“FACEBOOK_NON_JSON_RESULT”和错误代码为 200 的 JFIF 图像,而不是带有图像 URL 的 JSON 对象的预期响应,如下所示:
[{Response: responseCode: 200, graphObject: GraphObject{graphObjectClass=GraphObject, state={"FACEBOOK_NON_JSON_RESULT":"����\u0000\u0010JFIF\u0000\u0001\u0002\u0000\u0000\u0001\u0000\u0001\u0000\u0000��\u0000\u0004*\u0000��\u0002\u001cICC_PROFILE\u0000\u0001\u0001\u0000\u0000\u0002"}}, error: null, isFromCache:false}]
我在 Facebook 开发者页面的 Graph API Explorer 中测试了应用程序的访问令牌,它在那里工作。这个问题只发生在设备中,所以我不知道问题出在哪里。
我最近更改了应用程序的权限。但是,直到今天,该应用程序一直在使用新权限完美运行,响应突然变为该 JFIF 图像。如果有人可以为这个问题提供任何指示或解决方案,我将不胜感激。
编辑:这是源代码的一部分:
public void getImage(String image_id, int width, int height)
{
Session session = Session.getActiveSession();
// Get request parameters
Bundle requestParams = new Bundle();
requestParams.putString("access_token", session.getAccessToken());
requestParams.putBoolean("redirect", false);
requestParams.putInt("width", width);
requestParams.putInt("height", height);
// Request URL
String requestURL = "/" + image_id + "/picture";
Request request = new Request(session, requestURL, requestParams, HttpMethod.GET, callback);
Response response = request.executeAndWait();
if (response.getError() == null)
{
setResponseJSON(response.getGraphObject().getInnerJSONObject());
}
}