0

我一直在关注 facebook 开发网站上的指南。所以我把所有东西都设置好了,授权似乎很顺利,但是,当接受应用程序然后按“确定”时,我唯一得到的是一个空白屏幕,顶部有“取消”。

我相信问题出在 sessionStateChanged 方法中。它应该停在这部分(我认为):

 switch (state) {
    case FBSessionStateOpen: {
        UIViewController *topViewController =
        [self.navController topViewController];
        if ([[topViewController modalViewController]
             isKindOfClass:[MyLoginViewController class]]) {
            [topViewController dismissModalViewControllerAnimated:YES];
        }
    }   break;

那么,如果登录和授权成功,应该会这样吧?好吧,根据我的断点,它永远不会发生。也许这就是为什么应用程序永远不会再次打开的原因?

无论如何,我很感谢我能得到的任何提示或建议。

编辑:我发现问题出在 openSession 方法:

    - (void)openSession
{
    [FBSession openActiveSessionWithReadPermissions:nil
                                       allowLoginUI:YES
                                  completionHandler:
     ^(FBSession *session,
       FBSessionState state, NSError *error) {
         [self sessionStateChanged:session state:state error:error];//This never gets called!!!
     }];
}

sessionStateChanged 方法永远不会被调用,我不知道为什么。

4

1 回答 1

1

您的应用程序永远不会打开,因为您没有创建 URL 方案来将您重定向回来。请参阅 FB 文档的屏幕截图。在此处输入图像描述

于 2013-03-27T01:43:42.310 回答