2
id<FBOpenGraphAction> action = (id<FBOpenGraphAction>)[FBGraphObject graphObject];
    [action setObject:@"https://example.com/book/Snow-Crash.html"
               forKey:@"book"]; 
[FBDialogs presentShareDialogWithOpenGraphAction:action
                                          actionType:@"books.reads"
                                          previewPropertyName:@"book"
     handler:^(FBAppCall *call, NSDictionary *results, NSError *error) {
         if(error) {
             NSLog(@"Error: %@", error.description);
         } else {
             NSLog(@"Success!");
         }
     }];

我使用上面的代码在我的应用程序中显示一个 facebook shareDialog,但它在 ios 5.1 和 6.1 中都不起作用。我想知道原因。

4

2 回答 2

2

根据我现在的理解(我可能错了),这段代码调用了 facebook 原生 iOS 应用程序。如果您在模拟器上进行测试并且没有安装 iOS 应用程序,这将不起作用。您不太可能在模拟器上对此进行测试。在安装了 facebook iOS 应用程序的真实设备上试用。

于 2013-07-05T08:30:03.390 回答
1

您是否安装了最新的 Facebook 应用程序?此外,您正在尝试使用 facebook 的示例操作发布一个开放的图形操作,我什至不确定它是否存在。如果您在应用中注册了自定义打开图形操作,我建议您修改代码以调用它。如果您没有自定义操作,我建议您先发布简单的网址,看看它是否适合您。

利用:

NSURL* url = [NSURL URLWithString:@"https://developers.facebook.com/"];
[FBDialogs presentShareDialogWithLink:url
                              handler:^(FBAppCall *call, NSDictionary *results, NSError *error) {
    if(error) {
        NSLog(@"Error: %@", error.description);
    } else {
        NSLog(@"Success!");
    }
 }];

最后,我建议您阅读以下内容:https ://developers.facebook.com/ios/share-dialog/

于 2013-07-14T09:16:28.740 回答