【问题标题】:how do I manage facebook access token?如何管理 Facebook 访问令牌?
【发布时间】:2011-11-23 07:39:32
【问题描述】:
我有一个应用程序,用户可以使用 twitter 和 facebook 登录,但 twitter 没有问题,因为访问令牌永不过期,但是 facebook 会。在我的应用程序中,如果用户登录 Twitter,我可以连接 fb 帐户,反之亦然。 Facebook 基本上是用来分享一些东西到用户的墙上。我现在遇到的问题是,当用户尝试使用他们的 facebook 帐户共享某些内容并且访问令牌过期时,它会弹出一个登录屏幕,并且在我登录后它不再共享它。那么维护这个令牌的最佳方法是什么?我从来没有使用任何其他要求我再次登录的应用程序的经验......他们如何使用这个 tok 进行管理
【问题讨论】:
标签:
iphone
objective-c
ipad
facebook
【解决方案1】:
您需要了解 Facebook 和 Twitter 的工作方式不同。
您基本上可以将访问令牌存储在 NSUserDefaults 中:
[[NSUserDefaults standardUserDefaults] setObject:_facebook.accessToken forKey:@"fb_access_token"];
[[NSUserDefaults standardUserDefaults] setObject:_facebook.expirationDate forKey:@"fb_exp_date"];
(我想你已经这样做了)
令牌将持续到日期到期、用户更改帐户密码或用户删除您的应用程序。在这种情况下,你会得到一个例外。
出现异常后,必须重新登录并获取新令牌,如果要再次发布消息,将出现对话框。
并且由于 FBDialog 是一个 WebView,如果不点击发布,您将无法执行该操作。
【解决方案2】:
我相信您必须请求“offline_access”权限,这会使您的访问令牌持续到用户决定删除您的应用程序为止。在这种情况下,您可以决定是否通过取消授权 URL 从您的数据库中删除他的数据。