【问题标题】:my app is not switching to facebook ios native app on opening a fbsession我的应用在打开 fbsession 时没有切换到 facebook ios 本机应用
【发布时间】:2014-05-05 10:09:41
【问题描述】:

我在 mac OSX Maverics 10.9.2 上使用 xcode 5.1.1、ios 7.1.1、cocos2d 2.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 应用程序和设置->general-facebook。在 developer.facebook.com 应用设置中,我启用了 SSO。请帮忙。

编辑:

我遇到了一些随机问题,例如: 1> 错误:“FBSDKLog: 无法使用 Facebook 应用或 Safari 授权,fb**** 未注册为 URL Scheme”。 2> 在没有有效 FBSession 的情况下获取访问令牌。 3> 有时网页登录窗口弹出上面提到的#1 错误。 4> 有时上述错误#3 会弹出并消失,并取消日志打印用户。

【问题讨论】:

  • 使用这个链接,这将用于你stackoverflow.com/questions/23170846/…
  • 你需要在网页视图中打开它吗?
  • 我没有使用 webView。我需要使用设备中安装的本机 ios facebook 应用程序打开它。如果没有,则使用 safari 等。

标签: ios facebook cocos2d-iphone


【解决方案1】:

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

虽然我上面的代码工作正常,但我发现https://developers.facebook.com/docs/facebook-login/ios/v2.0#login-apicalls 中的“构建你自己的按钮”部分很有用,我根据这个链接修改了我的代码。

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

“当有人使用 Facebook 登录连接到应用程序时,该应用程序可以访问他们的公开个人资料和朋友列表,这些信息对每个人都是可见的。要创建这种基本连接,应用程序必须始终请求访问一个人的公开信息通过请求 public_profile 权限来获取个人资料信息。”

希望这对其他人有帮助!!!

【讨论】:

    【解决方案2】:

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

    Facebook强烈建议使用 FBSDK 库而不是旧的 Facebook-iOS-SDK,因此切换是个好主意。

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

    Facebook 在此处提供有关 iOS 9 集成的一些信息:https://developers.facebook.com/docs/ios/ios9

    【讨论】:

      猜你喜欢
      • 2012-05-12
      • 2016-07-27
      • 2013-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-15
      • 2011-12-01
      相关资源
      最近更新 更多