presentShareDialogWithParams发布到FB墙,但callback处理程序结果说错误

我有一个Facebook的SDK的iOS应用程序。 我在https://developers.facebook.com/docs/ios/ios-sdk-games/feed/几乎逐字地使用了第一块示例代码来将我的应用程序的信息分享给FB。 我只更改了示例代码中的string和URL以适应我的应用程序。

虽然从我的应用程序的post出现在我的Facebook墙上,一切看起来不错,我的NSLog FBAppCall结果是说,

错误发布故事=错误域= com.facebook.sdk代码= 11“用户在完成此AppCall之前导航离开Facebook应用程序。此AppCall现在被取消,需要重试才能成功完成

我试图使用FBAppCall结果,以便成功发送时,我可以触发另一个networking调用到我的后端,我可以logging关于事件的数据。 奇怪的是,虽然我可以看到我的墙上的post,“故事发布”的最后的else条件没有发生, error条件是。

下面是实际的FBAppCall,它再次来自https://developers.facebook.com/docs/ios/ios-sdk-games/feed/

 [FBDialogs presentShareDialogWithParams:shareParams clientState:nil handler:^(FBAppCall *call, NSDictionary *results, NSError *error) { if(error) { NSLog(@"Error publishing story = %@.", error); NSLog(@"result = %@.", results); } else if (results[@"completionGesture"] && [results[@"completionGesture"] isEqualToString:@"cancel"]) { NSLog(@"User canceled story publishing."); } else { NSLog(@"Story published."); self.shareMethod = @"Facebook"; [self recordSharingDataAtParse:self.shareMethod]; } }]; 

最后一个注意:我不相信这可能是原因,但我的FB应用程序目前处于“沙盒”模式。

更新:我发现这个类似的postFBDialogs presentShareDialogWithParams成功,但错误返回与推荐的解决scheme禁用“安装见解”和“移动SDK洞察”在应用程序控制台。 不幸的是,这并没有解决我的问题。

谢谢。

我不知道Error Domain=com.facebook.sdk Code=11但你必须检查你的应用程序在Facebook上设置和一些迁移禁用前三个选项(2012年7月,2012年8月突破变化)。

🙂

遇到此错误时,您需要处理来自应用程序委托的响应。

 - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { return [FBAppCall handleOpenURL:url sourceApplication:sourceApplication fallbackHandler:^(FBAppCall *call) { if (call.appLinkData && call.appLinkData.targetURL) { // Invoke pending callback. } }]; } 

当用户完成操作时,呼叫将包含post中的所有信息:

 <FBAppCall: 0x147274f0, ID: 62FA2382-B557-45D5-8ACA-FE4C7516F861 dialogData: <FBDialogsData: 0x14727490, method: share arguments: { dataFailuresFatal = 0; description = "After years of captivity, Angry Goat is finally free!"; link = "http://appstore.com/berrycrush"; name = "Unlocked Angry Goat"; picture = "http://example.com/angry-goat.png"; } results: { completionGesture = post; didComplete = 1; }> >