Facebook对象涉及多个活动

时间:2012-06-06 23:54:48

标签: android facebook

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

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

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

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

1 个答案:

答案 0 :(得分: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
}