1

在我的应用程序中,我正在使用新的 facebook SDK (3)。从主 Activity 用户可以单击不同的按钮,单击新 Activity 后会启动并显示不同的列表:一个带有消息,第二个带有好友请求,第三个带有通知。前两种情况一切正常,但是当我想通过发出 graphpath 请求来显示通知时,例如:

Request.executeGraphPathRequestAsync(session, "me/notifications?include_read=true",
                new Request.Callback() {}

我收到一个错误:

{Response: responseCode: 400, graphObject: null, error: {HttpStatus: 400, errorCode: 2500, errorType: OAuthException, errorMessage:必须使用活动访问令牌来查询当前用户的信息。}, isFromCache:false}

我已经请求了读取权限(read_mailbox、read_requests)和发布权限(manage_notifications)。我想我必须通过通知列表将访问令牌传递给我的活动,但我不知道该怎么做,谢谢你的帮助

解决方案

我找到了解决方案,只是我们不能直接将“include_read=true”等参数放入graphpath请求中,我们必须使用这些参数创建一个新的Request对象:session、httpmethod、parameters、graphpath、callback。

4

1 回答 1

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;
   }
于 2013-07-29T21:30:40.960 回答