适用于iOS 6的Facebook SDK 3.2:Can';t登录->;未调用openURL/AppId&;URL是正确的

适用于iOS 6的Facebook SDK 3.2:Can';t登录->;未调用openURL/AppId&;URL是正确的,ios,login,sdk,facebook-ios-sdk,openurl,Ios,Login,Sdk,Facebook Ios Sdk,Openurl,你好 我对iOS 6的新Facebook SDK 3.2有一个大问题(我使用iPhone模拟器进行测试)。我已经实现了Facebook登录,就像操作指南中描述的那样。唯一的区别是我没有在app委托中实现它。我在一个单独的mm文件中实现了Facebook的东西(但我也在app delegate中测试了代码->同样的问题!) 情况就是这样: 如果我试图登录,一个UIVIEW(可能是UIWebVIEW)弹出屏幕中间,我可以输入我的帐户凭据。接下来是权限确认屏幕。我单击“确定”按钮,然后出现错误: “操

你好

我对iOS 6的新Facebook SDK 3.2有一个大问题(我使用iPhone模拟器进行测试)。我已经实现了Facebook登录,就像操作指南中描述的那样。唯一的区别是我没有在app委托中实现它。我在一个单独的mm文件中实现了Facebook的东西(但我也在app delegate中测试了代码->同样的问题!)

情况就是这样: 如果我试图登录,一个UIVIEW(可能是UIWebVIEW)弹出屏幕中间,我可以输入我的帐户凭据。接下来是权限确认屏幕。我单击“确定”按钮,然后出现错误: “操作无法完成。(com.facebook.sdk错误2)。”UserInfo=0x14bbd590{com.facebook.sdk:ErrorLoginFailedReason=com.facebook.sdk:ErrorLoginNotCancelled}

我已经体验过旧的facebook sdk v2。这里没有整合的问题!但有了新版本和iOS 6,我无法让它运行:-(

我认为一个基本问题可能是没有调用UIApplicationLegate的方法openURL!我已将AppID插入info.plist并添加了URL类型。它看起来像以下代码段:

<key>CFBundleURLTypes</key>
<array>
<dict>
  <key>CFBundleURLSchemes</key>
    <array>
      <string>fb111111111111111</string>
    </array>
</dict>
</array>
<key>FacebookAppID</key>
<string>111111111111111</string>
CbundleUrlTypes

相同的url(如果解码):

我还仔细检查了所有相关点上的应用程序ID是否相等(info.plist/url/dev-site:Bundle ID)

不知道这是否是一个重要的信息,但我们的应用程序中不使用任何xib文件,因为这是一个使用我们自己的3D引擎的3D游戏。提供的屏幕方向仅为横向。我使用Xcode版本4.5.2(4G2008a)

有什么想法吗

3个附加问题(可能有助于我获得更多信息):

  • 我如何获得更多关于出错原因的信息?“com.facebook.sdk错误2”没有太大帮助:-/

  • 有没有一种简单的方法可以测试UIApplicationLegate中openURL方法的自动重定向调用

  • 有没有办法强制sdk使用safari浏览器而不是视图登录

  • 提前thx

    马丁

    我找到了一个解决办法: 您必须在方法“application:didFinishLaunchingWithOptions”中调用方法“canOpenURL”,如下所示:

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
      ...
      [[UIApplication sharedApplication] canOpenURL: [NSURL URLWithString:@"fb111111111111111"]];
      ...
      return YES; //or NO;  doesn't matter
    }
    
    现在的效果是sdk尝试使用safari浏览器登录,而不是愚蠢的WebView:-)

    _

    提示:

    您可以直接从info.plist文件中读取URL方案:

    NSString urlScheme = [[[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleURLTypes"] objectAtIndex:0] objectForKey:@"CFBundleURLSchemes" objectAtIndex:0];
    

    您是否在~/Documents/FacebookSDK/samples上试用过sdk示例?