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 注销

Facebook SDK for iOS 处理登录

通过 FB SDK for iOS 将视频分享到 facebook

Facebook Sdk for ios 发布 - 暗屏

Phonegap 3.0.0 - Facebook SDK 3.6 - FB 插件:找不到 Facebook 连接

使用 facebook api for ios sdk 的问题