Facebook SDK 3.6 for iOS 设备上的错误 2
Posted
技术标签:
【中文标题】Facebook SDK 3.6 for iOS 设备上的错误 2【英文标题】:Facebook SDK 3.6 for iOS error 2 on device 【发布时间】:2013-08-01 21:59:58 【问题描述】:Facebook 登录在 ios 模拟器上正常工作,但在设备 (iPhone 4) 上不工作。就它在模拟器上的工作而言,我认为 facebookId、权限、.... 都设置好了。
NSArray *permissions = [NSArray arrayWithObjects:@"email",nil];
[FBSession openActiveSessionWithReadPermissions:permissions allowLoginUI:YES completionHandler:^(FBSession *session, FBSessionState status, NSError *error)
[self sessionStateChanged:session state:status error:error];
];
有什么帮助吗? 谢谢
【问题讨论】:
您是否禁用了沙盒模式? 是的。它适用于模拟器 【参考方案1】:解决了!!!
我检查了 FacebookSDK 中的 SessionLoginSample 并找到了解决方案。
我不得不把上面的代码改成这个:
MyAppDelegate *appDelegate = [[UIApplication sharedApplication]delegate];
if (!appDelegate.session.isOpen || appDelegate.session.state != FBSessionStateCreated)
// Create a new, logged out session.
appDelegate.session = [[FBSession alloc] init];
// if the session isn't open, let's open it now and present the login UX to the user
[appDelegate.session openWithCompletionHandler:^(FBSession *session,
FBSessionState status,
NSError *error)
// and here we make sure to update our UX according to the new session state
[self sessionStateChanged:session state:status error:error];
];
我在 MyAppDelegate.h 中添加了一个属性
@property (strong, nonatomic) FBSession *session;
并更改 MyAppDelegate.m 中的方法
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication: (NSString *)sourceApplication annotation:(id)annotation
// return [FBSession.activeSession handleOpenURL:url];
return [FBAppCall handleOpenURL:url sourceApplication:sourceApplication withSession:self.session];
现在可以正常使用了:)
【讨论】:
以上是关于Facebook SDK 3.6 for iOS 设备上的错误 2的主要内容,如果未能解决你的问题,请参考以下文章
使用 facebook SDK for ios 6 实现 Facebook 注销
通过 FB SDK for iOS 将视频分享到 facebook