1

我有两个活动需要使用我的 Facebook 对象。第一个活动执行登录过程,第二个活动需要 Facebook 对象来获取朋友列表。我正在使用一个扩展 Application 的类来将 Facebook 对象从第一个活动传输到第二个活动。

这很好用,但是当我在第一个活动上注销并登录时,在尝试在第二个活动上使用 Facebook 对象时出现此错误

    {"error_code":104,"error_msg":"Requires valid signature","request_args"

当我重新登录时我正在更新 Facebook 对象,并且我正在我的 Application 类中更新 Facebook 对象。知道为什么我可能会收到此错误吗?

4

1 回答 1

3

您不需要将 Facebook 对象从一个活动传递到另一个活动,而是将访问令牌和过期时间保存到首选项中,然后在另一个活动中获取它们。
如果用户稍后返回应用程序,这也很好。

您可以使用官方 facebook 示例中的SessionStore类,这将更容易保存/获取身份验证信息。

因此,在第一个活动中,您可以:

Facebook facebook = new Facebook("APP_ID");

if (!SessionStore.restore(facebook, this)) {
    // start the authentication process
}
else {
    // start the other activity
}

在第二个活动中:

Facebook facebook = new Facebook("APP_ID");

if (!SessionStore.restore(facebook, this)) {
    // start the first activity to authenticate the user
}
else {
    // use the facebook object to make graph requests
}
于 2012-06-07T07:25:31.280 回答