【问题标题】:Facebook SDK 3.1 presentShareDialogModally failsFacebook SDK 3.1 presentShareDialogModally 失败
【发布时间】:2012-09-17 13:23:08
【问题描述】:

我正在尝试在 iOS 6 上为 Facebook 测试新的内置共享“表格”,但是当我运行示例代码时,它没有显示表格。相反,它为我发布了一个状态,而不显示它首先要发布的内容。我还以为 Facebook 不允许你再把话放在用户的嘴里?控制台打印此错误:HelloFacebookSample Error: HTTP status code: 400

我有 XCode 4.5 和 iOS 模拟器 6.0 和 Facebook SDK 3.1

我正在关注这个: http://developers.facebook.com/docs/getting-started/facebook-sdk-for-ios/3.1/

【问题讨论】:

    标签: facebook ios6 facebook-ios-sdk


    【解决方案1】:

    您是否在设备/模拟器上设置了 Facebook 帐户(在 Settings->Facebook 下)?

    仅当应用程序在 ios 6 上运行并且用户通过 ios 6 Facebook 帐户进行身份验证时,才会显示本机工作表对话框。否则,处理程序会报告该错误并且presentShareDialogModallyFrom 返回“NO”。此外,处理程序中的FBNativeDialogResult result 将等于FBNativeDialogResultError

    【讨论】:

    • 就是这样,谢谢!现在看起来很明显,但教程没有将它列为一个步骤,并且示例没有处理这种情况。是否每个用户都必须进入他们的设置,或者如果他们同意,我可以让我的应用更改设置吗?
    • 如果用户没有这样配置facebook,例如一个共享iPad的家庭怎么办?是否有与之前的 facebook 对话框等效的替代方法:@"stream.publish" andParams: andDelegate
    【解决方案2】:

    您缺少一些必需的框架:

    AdSupport.framework

    Account.framework

    社交框架

    BOOL displayedNativeDialog =
    [FBNativeDialogs
     presentShareDialogModallyFrom:self
     initialText:self.shareText
     image:nil
     url:nil
     handler:^(FBNativeDialogResult result, NSError *error) {
         if (error) {
             /* handle failure */
             NSLog(@"error:%@, %@", error, [error localizedDescription]);
         } else {
             if (result == FBNativeDialogResultSucceeded) {
                 /* handle success */
                 NSLog(@"handle success");
             } else {
                 /* handle user cancel */
                 NSLog(@"user cancel");
             }
         }
     }];
    if (!displayedNativeDialog) {
        /* handle fallback to native dialog  */
    }
    

    【讨论】:

    • 确保您的设备/模拟器是 iOS 6.0
    • 这是我得到的:HelloFacebookSample[2470:19a03] 错误:错误域 = com.facebook.sdk 代码 = 7“操作无法完成。(com.facebook.sdk 错误 7。 )" UserInfo=0x94954d0 {com.facebook.sdk:NativeDialogReasonKey=NativeDialogInvalidForSession},操作无法完成。 (com.facebook.sdk 错误 7。)
    • 您是否在 plist 中设置了您的 facebook AppID?developers.facebook.com/docs/payments/errorcodes
    • 它已经在那里了。我所做的只是从developers.facebook.com 下载示例代码项目并运行它。
    【解决方案3】:

    确保您没有使用已弃用的方法(即 openActiveSessionWithPermissions 而不是较新的 openActiveSessionWithReadPermissions/openActiveSessionWithWritePermissions)打开会话,否则 facebook sdk 不会使用本机 facebook 集成(即本机对话框)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多