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中都不起作用。我想知道原因。
答案 0 :(得分:2)
从我现在的理解(我可能错了),此代码调用facebook原生iOS应用程序。如果您在模拟器上测试它并且没有安装iOS应用程序,则无法使用。你不太可能在模拟器上测试它。在安装了facebook iOS应用程序的真实设备上试用它。
答案 1 :(得分:1)
您是否安装了最新的Facebook应用程序? 此外,你试图使用facebook的示例动作发布一个开放的图形动作,我不确定是否存在。如果您已在应用程序中注册了custom open graph actions,我建议您修改代码以调用它。如果您没有自定义操作,我建议您先发布简单的网址,看看它是否适合您。
使用:
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!");
}
}];