我使用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];
这会显示一个弹出窗口,让用户写下他的消息并按发布或取消。
有没有办法知道帖子是否已经成功发布(取消或连接问题)?
非常感谢!
答案 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
}
}