在我的应用程序中,我正在使用新的facebook SDK(3)。从主Activity中,用户可以单击不同的按钮,在单击新的Activity后,显示不同的列表:一个包含消息,第二个包含朋友请求,第三个包含通知。前两种情况下一切正常,但是当我想通过提出如下的图形路径请求来显示通知时:
Request.executeGraphPathRequestAsync(session, "me/notifications?include_read=true",
new Request.Callback() {}
我收到错误:
{响应:responseCode:400,graphObject:null,错误:{HttpStatus: 400,errorCode:2500,errorType:OAuthException,errorMessage: An 必须使用活动访问令牌来查询有关的信息 当前用户。},isFromCache:false}
我已经要求读取权限(read_mailbox,read_requests)和发布权限(manage_notifications)。我想我必须通过通知列表将访问令牌传递给我的活动,但我不知道该怎么做,谢谢你的帮助
解决方案
我找到了解决方案,只是我们不能将诸如“include_read = true”之类的参数直接放到graphpath请求中,我们必须使用以下参数创建一个新的Request对象:session,httpmethod,parameters,graphpath,callback。
答案 0 :(得分:1)
感谢Janek回答您自己的问题,因为您提到参数需要单独发送而不是作为graphPath的一部分发送,我只是发布了一个解决方案示例,以防有人遇到同样的问题:
new Request(session, "me", getRequestParameters(), null, new Request.Callback() { ... }).executeAsync();
private Bundle getRequestParameters() {
Bundle parameters = new Bundle(1);
parameters.putString("fields", "id,name,first_name,last_name,gender,picture");
return parameters;
}