我有一些代码发布到朋友的Facebook墙上,在通过Open Graph弃用之后,我改为使用已弃用的标题和Facebook对话框将用户包含在帖子中。这已经工作了几个星期,但似乎已停止工作(周二工作正常,周三失败)在生产应用程序中(即没有代码更改或重新构建。)
我花了好几个小时尝试所有类型的东西(在主线程上运行,断言会话是实时的,重新编写到SDK 3.2,卸载应用程序/重新安装,完全更改对话框类型和发布内容)以恢复能力,但无论我做什么,对话立即解散。 [注意:我们的应用没有开发者提醒,我相信没有任何应用设置发生变化。]
这是代码。 facebookManager“performConnectedAction”来自Facebook示例以确保活动会话(并且我断言它没有问题。):
NSMutableDictionary *wallPost = [NSMutableDictionary dictionary];
// Content populating not show (and I've tried various simplifications)
// Who to...
[wallPost setObject:_selectedUser.id forKey:kFB_FIELD_TO];
[facebookManager performConnectedAction:^{
FBSession *facebookSession = facebookManager.facebookSession;
Assert( facebookSession.isOpen, @"Need an open Facebook session.");
[FBWebDialogs presentFeedDialogModallyWithSession:facebookSession parameters:wallPost handler:^(FBWebDialogResult result, NSURL *resultURL,NSError *error) {
if ( !!error ) {
[self logEventWithFormat:@"Failed to invite on Facebook [%@]", error];
}
}];
}];
基本上......对话框不仅闪烁,而且没有回调(没有提供错误或结果。)Facebook应用程序的所有其他部分继续运行(我们的图形调用,我们的Facebook好友对话框,等等。)
我对如何进一步调查此问题表示感谢。我已经提交了一份错误报告:
http://developers.facebook.com/bugs/165456656937602?browse=search_5130e2d7663dd6543665811
答案 0 :(得分:1)
我有同样的问题并通过延迟这样的方法调用来修复它。我的方法是fbWallPost
[self performSelector:@selector(fbWallPost) withObject:nil afterDelay:0.5];