5

我正在尝试在 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/

4

3 回答 3

10

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

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

于 2012-10-01T21:26:23.103 回答
2

您缺少一些必需的框架:

AdSupport.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  */
}
于 2012-09-26T11:16:32.380 回答
2

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

于 2012-11-01T10:32:03.913 回答