【问题标题】:Passing Access Token facebook 3 for Android传递访问令牌 facebook 3 for Android
【发布时间】:2013-04-25 22:31:55
【问题描述】:

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

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

我得到一个错误:

{响应:responseCode:400,graphObject:空,错误:{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。

【问题讨论】:

  • 您的评估是正确的 - 您需要提供访问令牌。你试过什么?
  • 没什么,不知道怎么在一个activity中保存access Token,然后在另一个activity中打开
  • 更具体地说,我知道有一个带有“getToken()”方法的“AccessToken”类,但是我不知道如何使用它(创建它)。比我假设我必须保存访问令牌,我获得了我在第二个活动中使用此方法“Session.openActiveSessionWithAccessToken(context, accessToken, callback)”打开它
  • SDK v3 不再需要直接处理访问令牌。只需通过会话,它应该可以工作。由于 Session.getActiveSession() 是静态的,因此您可以从任何活动中访问它。
  • 但是当我使用 Session.getActiveSession 时它不起作用我无法阅读通知(适用于 read_mailbox、read_requests),我收到一个错误:必须使用活动访问令牌来查询信息关于当前用户

标签: android facebook facebook-graph-api facebook-access-token


【解决方案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;
   }

【讨论】:

  • 我正在使用这种方法。它解决了由于令牌引起的错误,但在尝试访问朋友列表时得到了一个空的数据数组。
猜你喜欢
  • 2017-03-16
  • 2013-04-06
  • 1970-01-01
  • 2012-08-29
  • 2012-06-02
  • 1970-01-01
  • 2011-11-07
  • 1970-01-01
相关资源
最近更新 更多