iPhone FBConnect总是在授权时跳转到Safari或Facebook应用程序

3
FBConnect每次都切换到Facebook应用程序或Safari,即使用户已经授权一次,这是正常行为吗?
目前,我的应用程序将创建一个Facebook对象并调用授权,然后iPhone将翻转到Facebook应用程序以获取用户权限,一旦用户已登录和/或同意,则返回到我的应用程序调用 - (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url 我将URL传递给Facebook对象,他们可以在其Facebook页面上分享。我知道这是第一次应该如何工作...但是每次用户选择分享时,甚至如果应用程序没有关闭,这种情况都会发生。
我是否可能错过了一步,让Facebook Connect在我的应用程序中存储cookie?
1个回答

8

当用户授权您的应用程序后,您需要保存访问令牌。

 [[NSUserDefaults standardUserDefaults] setObject:self.facebook.accessToken forKey:@"AccessToken"];
 [[NSUserDefaults standardUserDefaults] setObject:self.facebook.expirationDate forKey:@"ExpirationDate"];

并在您的应用程序启动时设置它。

// Facebook Init
facebook = [[Facebook alloc] init];
facebook.accessToken = [[NSUserDefaults standardUserDefaults] objectForKey:@"AccessToken"];
facebook.expirationDate = [[NSUserDefaults standardUserDefaults] objectForKey:@"ExpirationDate"];

调用[facebook isSessionValid]将检查用户会话是否仍然有效。

- (BOOL)isSessionValid {
  return (self.accessToken != nil && self.expirationDate != nil
           && NSOrderedDescending == [self.expirationDate compare:[NSDate date]]);

}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接