Facebook ios SDK - 如何处理Feed对话框回调?

时间:2012-01-30 14:12:31

标签: ios facebook dialog

我使用Facebook开发者网站上的以下代码来做贴墙帖:

NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                             @"http://developers.facebook.com/docs/reference/dialogs/", @"link",
                             @"http://fbrell.com/f8.jpg", @"picture",
                             @"Facebook Dialogs", @"name",
                             @"Reference Documentation", @"caption",
                             @"Dialogs provide a simple, consistent interface for apps to interact with users.", @"description", nil];

[_facebook dialog:@"feed" andParams:params andDelegate:self];

这会显示一个弹出窗口,让用户写下他的消息并按发布或取消。

有没有办法知道帖子是否已经成功发布(取消或连接问题)?

非常感谢!

4 个答案:

答案 0 :(得分:3)

尝试使用指定self以外的委托来捕获对话框的响应。

请参阅:http://developers.facebook.com/docs/reference/iossdk/dialog/

  

如果您要调用的方法需要,则应调用此对话框   用于设置对话框的参数。你应该设置你的代表   处理对话框成功的场景,被取消   用户,以及任何错误情况。

至于代表:http://developers.facebook.com/docs/reference/iossdk/FBRequestDelegate/我认为它将是request:didReceiveResponse:代表。

编辑

如果有其他反馈,您的答案就在我原始回复中链接中列出的dialogDidComplete代表中。

答案 1 :(得分:2)

我认为您可以使用FBDialogDelegate的- (void)dialogDidComplete:(FBDialog *)dialog;方法来实现。

答案 2 :(得分:0)

+1对于Hlung和DMCS的帮助,但看起来Feed对话越来越被弃用,并且处理正确的回调是繁琐的(不可能?)。 此外,FB doc不是最新的。

所以我最终使用了(void)requestWithGraphPath代替(void)dialog,这需要额外的权限才能在用户的墙上发布,但在以下2个回调中效果更好:

- (void)request:(FBRequest *)request didLoad:(id)result
- (void)request:(FBRequest *)request didFailWithError:(NSError *)error

答案 3 :(得分:0)

与您的问题有些相关 - 我试图弄清楚哪个对话框已经完成。

您可以检测对话框的参数,并检查它是哪一个。我有这个问题,因为我发送了各种对话框,并希望在另一端知道哪一个是成功的。

- (void)dialogDidComplete:(FBDialog *)dialog {
    // the song feed return
    NSLog(@"params; %@",dialog.params);
    if([[dialog.params objectFOrKey:@"ref"] isEqualtoString:@"songfeed"]){
        // do stuff on return from this dialog
    }
}