FB应用程序在ios 6上显示presentShareDialogWithOpenGraphAction后立即关闭

时间:2013-06-03 14:18:34

标签: ios facebook facebook-graph-api facebook-opengraph

当我从我的应用程序启动Facebook时,无法发布对话框,因为一旦显示共享对话框,FB应用程序就会关闭。

未调用完成处理程序。没有错误。没有成功。

   id<FBOpenGraphAction> action = (id<FBOpenGraphAction>)[FBGraphObject graphObject];

   action[@"mystory"] = @{
                            @"fbsdk:create_object": @YES,
                            @"type": @"appname:mystory",
                            @"title":@"title",
                            @"url": @"http://www.foo.bar",
                            @"description":@"text"
                            };


    FBAppCall *appCall = [FBDialogs presentShareDialogWithOpenGraphAction:action
                                          actionType:@"appname:myaction"
                                 previewPropertyName:@"mystory"
                                             handler:^(FBAppCall *call, NSDictionary *results, NSError *error) {
                                                 if(error) {
                                                     NSLog(@"Error: %@", error.description);
                                                 } else {
                                                     NSLog(@"Success!");
                                                 }
                                             }];

有没有人看到我做错了什么?

如果我只使用presentShareDialogWithLink,它可以正常工作。

修改: 如果我通过appcall没有任何网址,它的工作原理!为什么?

   action[@"mystory"] = @{
                            @"fbsdk:create_object": @YES,
                            @"type": @"appname:mystory",
                            @"title":@"title",
                            @"description":@"text"
                            };

3 个答案:

答案 0 :(得分:1)

我使用来自https://developers.facebook.com/docs/howtos/share-dialogs-ios-sdk/的示例代码有一个非常类似的问题(它肯定会进入代码的Share Dialog部分而不是Feed对话框):我的应用程序进入后台和facebook应用程序正在出现,只是立即被解雇,返回我的应用程序。

经过一番搜索后,我发现了几个对URL处理设置的引用,并决定仔细检查应用程序集成。我发现在从3.2到3.5的过程中有一些我错过的东西,特别是plist中的FacebookDisplayName条目,openURL函数的变化&amp;启用共享对话框测试版功能,如下所述:https://developers.facebook.com/docs/tutorial/iossdk/upgrading-from-3.2-to-3.5/

毕竟,问题已经消失:对话框显示正确,我可以愉快地分享内容。不幸的是,我无法告诉你上述哪一项修改确实解决了这个问题,但是可能值得仔细检查它们。

答案 1 :(得分:0)

检查:

  • “appname”是您实际应用的命名空间

  • “mystory”是实际的对象类型

  • “myaction”是您的行动名称

您需要一个可以托管的工作网址。您提供的“http://www.foo.bar”不能被Facebook取消,也无法使用。

答案 2 :(得分:-1)

当您在appcall中有URL时,它是否与您在Facebook上的应用配置中的应用域名框中输入的URL匹配?如果你的appcall中的网址和你在Facebook上的应用配置中输入的网址不同,那么通话将会失败,因为这可能是原因。