FBNativeDialogNotSupported Facebook sdk 3.1

Posted

技术标签:

【中文标题】FBNativeDialogNotSupported Facebook sdk 3.1【英文标题】: 【发布时间】:2012-09-30 06:58:05 【问题描述】:

随着 Facebook SDK 3.1 的发布,它有一个类可以在 ios 6 中为 Post 启动 Facebook 原生对话框。

下面是它的代码。

[FBNativeDialogs presentShareDialogModallyFrom:currentController initialText:nil image:nil url:nil handler:^(FBNativeDialogResult result, NSError *error) 
 //Print Error
                    ];

Error Domain=com.facebook.sdk Code=7 “操作无法完成。(com.facebook.sdk 错误 7。)” UserInfo=0x1e5e0930 com.facebook.sdk:NativeDialogReasonKey=com.facebook. sdk:NativeDialogNotSupported

所以,我尝试先使用以下代码登录,然后启动 FBNativeDialog。但是,当在 Safari 中按下 Facebook 权限窗口的 Okay 按钮时,它不会进入完成处理程序。

AppDelegate *appDelegate=[[UIApplication sharedApplication] delegate];
appDelegate.session = [[FBSession alloc] initWithPermissions:[NSArray arrayWithObjects:@"publish_stream", nil]];


                    [appDelegate.session openWithCompletionHandler:^(FBSession *session, FBSessionState status, NSError *error) 
                        switch (status) 
                            case FBSessionStateOpen:
                            [FBNativeDialogs presentShareDialogModallyFrom:currentController initialText:nil image:nil url:nil handler:^(FBNativeDialogResult result, NSError *error) 
                        NSLog(@"Dialog Error= %@",error);
                    ];
                                break;

                            default:
                                break;
                        
                    ];

【问题讨论】:

你配置了facebook账号吗? 这是我进一步尝试的代码pastebin.com/nx89KxaJ 【参考方案1】:

当在 Safari 中按下 Facebook 权限窗口的 Okay 按钮时

您需要在 iOS 6 设备/模拟器上设置 Facebook 帐户才能使用本机共享对话框。完成此操作后,您还将获得本机 iOS 权限对话框,因此不应有应用程序切换到 Safari 登录。查看我对http://facebook.***.com/a/12681352/1712979的类似回复

【讨论】:

以上是关于FBNativeDialogNotSupported Facebook sdk 3.1的主要内容,如果未能解决你的问题,请参考以下文章