我已经在互联网上寻找这个问题的答案而找不到答案。
仅使用FBConnect最新SDK的新图形API,如何“恢复会话?”
在旧的SDK和API中,您可以调用类似[session resume]的内容;那会恢复你的会话。我找不到任何适用于新SDK / API的等效内容。
[会话简历];不起作用。
[session isSessionValid];将测试会话的有效性,但不会恢复。
现在,我唯一想做的就是让用户每次使用时都会转到应用的授权页面。然而,这很烦人,因为在用户最初授权应用程序之后,每次它返回到页面时都会声明:“您已经授权[应用程序名称]应用程序”然后您可以点击确定,然后它会将您发送回有效会话的应用程序。 *我已经看到互联网上的其他帖子,其他开发者不得不使用相同的过程,因为他们找不到答案。
如果有人有任何答案,请分享。但是,由于此问题专门针对新图API和新SDK,因此将删除包含旧API或SDK的代码/说明的答案。
答案 0 :(得分:1)
在fbdidLogin中执行
[[NSUserDefaults standardUserDefaults] setObject:facebook.accessToken forKey:@"AccessToken"];
[[NSUserDefaults standardUserDefaults] setObject:facebook.expirationDate forKey:@"ExpirationDate"];
[[NSUserDefaults standardUserDefaults] synchronize];
每次你的应用加载恢复这些密钥并用它们创建一个facebook对象:
facebook = [[[Facebook alloc] initWithAppId:@"yourappid"] retain];
facebook.accessToken = [[NSUserDefaults standardUserDefaults] stringForKey:@"AccessToken"];
facebook.expirationDate = (NSDate *) [[NSUserDefaults standardUserDefaults] objectForKey:@"ExpirationDate"];
然后在该对象上使用isSessionValid。如果它有效,请继续使用该同一对象进行图形API业务。如果没有,那么进行正常授权。这对我很有效。希望它有所帮助。