打开fbsession时,我的应用程序未切换到facebook ios本机应用程序

打开fbsession时,我的应用程序未切换到facebook ios本机应用程序,ios,facebook,cocos2d-iphone,Ios,Facebook,Cocos2d Iphone,我在MacOSX Maverics 10.9.2上使用xcode 5.1.1、ios 7.1.1、CoCoCoS2D2.1、facebook ios sdk 3.14 我已在appDelegate中定义了FBSession属性。在另一个CCMenuItemImage点击事件中 if (appDelegate.session.isOpen) { [appDelegate.session closeAndClearTokenInformation]; } else { if (app

我在MacOSX Maverics 10.9.2上使用xcode 5.1.1、ios 7.1.1、CoCoCoS2D2.1、facebook ios sdk 3.14

我已在appDelegate中定义了FBSession属性。在另一个CCMenuItemImage点击事件中

if (appDelegate.session.isOpen) {
    [appDelegate.session closeAndClearTokenInformation];
} else
{
    if (appDelegate.session.state != FBSessionStateCreated) {
        // Create a new, logged out session.
        appDelegate.session = [[FBSession alloc] init];
    }
    appDelegate.session = [[[FBSession alloc] initWithPermissions:permissions] autorelease];
    // 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) {
        NSLog(@"IT NEVER PRINTS %@",session.accessTokenData.accessToken);
    }];
}
在appDelegate.m中,我有:

 - (BOOL)application:(UIApplication *)application
        openURL:(NSURL *)url
       sourceApplication:(NSString *)sourceApplication
        annotation:(id)annotation {
       // attempt to extract a token from the url
       return [FBAppCall handleOpenURL:url
                         sourceApplication:sourceApplication
                         withSession:self.session];
      }
当我运行facebook代码示例时,它会启动facebook ios本机应用程序来登录/请求许可。当我运行上面的代码时,它什么也不做。我尝试登录或不登录facebook ios应用程序和设置->常规facebook。在developer.facebook.com应用程序设置中,我启用了SSO。请帮忙

编辑: 我收到的随机问题如下: 1> 错误:“FBSDKLog:无法使用Facebook应用程序或Safari进行授权,fb****未注册为URL方案”。 2> 在没有有效FBSession的情况下获取访问令牌。 3> 有时网页登录窗口弹出上述#1错误。
4> 有一段时间,上面的错误#3弹出并消失,日志打印用户被取消。

问题刚刚通过删除我在“test Apps”下的“developer.facebook.com->app”页面中创建的测试应用程序及其关联的测试用户得到解决。这很奇怪,但解决了我所有的问题

虽然我上面的代码运行良好,但我发现中的“构建您自己的按钮”部分很有用,我根据此链接修改了我的代码

在同一个链接中,我也注意到了我不知道的事情:

“当某人使用Facebook登录连接到某个应用程序时,该应用程序可以访问其公共配置文件和好友列表,即所有人都可以看到的信息。若要创建此基本连接,应用程序必须始终通过请求“公共配置文件”权限来请求访问某人的公共配置文件信息。”


希望这能帮助别人

我最近也遇到了同样的问题。我能够通过将FBSDKCoreKit的
4.6.0
版本升级到
4.7.0
版本来修复它

Facebookstrong建议使用FBSDK库而不是旧的Facebook iOS SDK,因此切换是一个好主意

此外,如果您使用的是iOS 9,请确保设置了正确的
LSApplicationQueriesSchemes


Facebook在此处提供了一些有关iOS 9集成的信息:

使用此链接这将用于您需要在web view中打开它吗?我没有使用webView。我需要在设备中安装本机ios facebook应用程序时打开它。如果没有,则使用safari等。