1

当我从我的应用程序启动 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 它可以正常工作。

编辑:如果我在没有任何 url 的情况下通过 appcall 就可以了!为什么?

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

3 回答 3

1

我使用来自https://developers.facebook.com/docs/howtos/share-dialogs-ios-sdk/的示例代码遇到了一个非常相似的问题(它肯定是进入代码的共享对话框部分而不是提要对话框):我的应用程序正在进入后台并且 facebook 应用程序正在出现,只是立即再次被关闭,返回到我的应用程序。

经过一番搜索,我发现了一些对 URL 处理设置的引用,并决定仔细检查应用程序集成。我发现从 3.2 迁移到 3.5 时我错过了一些东西,特别是 plist 中的 FacebookDisplayName 条目、对 openURL 功能的更改和启用共享对话框 beta 功能,如下所述: https://developers。 facebook.com/docs/tutorial/iossdk/upgrading-from-3.2-to-3.5/

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

于 2013-06-07T10:34:19.377 回答
0

检查:

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

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

  • “myaction”是您的操作名称

您需要一个您托管的有效 URL。您提供的“ http://www.foo.bar ”不能被 Facebook 废弃,也无法使用。

于 2013-06-06T05:03:43.380 回答
-1

当您在 appcall 中有 URL 时,它是否与您在 Facebook 应用配置中的 App Domains 框中输入的 URL 匹配?如果您的应用调用中的 url 和您在 Facebook 上的应用配置中输入的 url 不同,那么调用将像您的一样失败,这可能是原因。

于 2013-06-13T01:52:23.780 回答