我有一个带有Facebook SDK的iOS应用程序。我正在https://developers.facebook.com/docs/ios/ios-sdk-games/feed/使用第一个示例代码块,几乎逐字地将我的应用程序中的信息共享给FB。我只更改了示例代码中的字符串和网址以适合我的应用。
虽然我的应用中的帖子确实出现在我的Facebook墙上,而且一切看起来都不错,但我的NSLog
的FBAppCall结果却在说,
错误发布故事=错误Domain = com.facebook.sdk Code = 11“The 用户在完成此操作之前导航离开Facebook应用程序 AppCall。此AppCall现已取消,需要重试才能获得 顺利完成
我正在尝试使用FBAppCall结果,以便在成功发送后,我可以触发另一个网络调用到我的后端,在那里我可以记录有关该事件的数据。奇怪的是,虽然我可以看到我墙上的帖子,但是“已发布的故事”的最终else
条件没有发生,error
条件是。
这是来自https://developers.facebook.com/docs/ios/ios-sdk-games/feed/
的实际FBAppCall[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应用目前处于“沙盒”模式。
更新:我发现了类似的帖子FBDialogs presentShareDialogWithParams succeeds but error gets returned,其推荐的解决方案是禁用“安装见解”&应用控制台中的“移动SDK洞察”。不幸的是,这并没有解决我的问题。
感谢。
答案 0 :(得分:0)
我不确定Error Domain=com.facebook.sdk Code=11
但您必须在Facebook上检查您的应用设置,并且某些迁移会禁用最后三个选项(2012年7月,2012年8月重大更改)。
:)
答案 1 :(得分:0)
当您遇到此错误时,您需要处理来自应用代理的响应。
- (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.
}
}];
}
当用户完成操作时,该调用将包含帖子中的所有信息:
<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;
}>
>