我正在尝试与 Facebook 进行简单的交流。目前,我可以让用户登录并以他们的身份发布到他们的墙上。但无论出于何种原因,我似乎无法访问他们的姓名等公共信息。我一直收到此错误:
{"error":{"message":"语法错误 \"预期字符串结尾而不是 \"?\".\" 在字符 4: name?access_token=MYACCESSTOKEN","type":"OAuthException","code ":2500}}
这是电话:
SampleRequestListener srl = new SampleRequestListener();
AsyncFacebookRunner afr = new AsyncFacebookRunner(facebook);
afr.request("http://graph.facebook.com/me?fields=name", (RequestListener)srl);
该调用是在经过验证的会话中进行的(在 .Authorize 的 DialogListener 的 onComplete 部分中)。使用我的 access_token 和与上面完全相同的字符串,我可以让请求在http://developers.facebook.com/tools/explorer/上正常工作
解析 RequestListener.onComplete 中的响应时发生错误
JSONObject json = Util.parseJson(response);
final String name = json.getString("name");
System.out.println("Hi, my name is " + name);
感谢您的时间。欢迎所有输入。
更新 *
有两件事正在发生。在 facebook API 中,Util.openUrl 附加了一个“?” 在字段名称和 access_token 之间(正如下面的答案所指出的)。这似乎很奇怪。我想知道我是否提取了旧版本的 API 之类的。你会认为这将被正确设置。
另外,我错误地调用了该方法:这个:
afr.request("http://graph.facebook.com/me?fields=name", (RequestListener)srl);
应该:
afr.request("me?fields=name", (RequestListener)srl);