presentShareDialogWithParams 发布到 FB 墙上,但回调处理程序结果显示错误
Posted
技术标签:
【中文标题】presentShareDialogWithParams 发布到 FB 墙上,但回调处理程序结果显示错误【英文标题】:presentShareDialogWithParams posts to FB wall, but callback handler results say error 【发布时间】:2013-11-28 07:10:25 【问题描述】:我有一个带有 Facebook SDK 的 ios 应用。我正在使用https://developers.facebook.com/docs/ios/ios-sdk-games/feed/ 的第一块示例代码几乎逐字将我的应用程序中的信息分享到 FB。我只更改了示例代码中的字符串和 URL 以适应我的应用程序。
虽然我的应用程序中的帖子确实出现在我的 Facebook 墙上并且一切看起来都不错,但我的NSLog
中的 FBAppCall 结果在说,
错误发布故事=错误域=com.facebook.sdk 代码=11“ 用户在完成此操作之前离开 Facebook 应用程序 应用呼叫。现在这个 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,建议解决方法是在应用控制台中禁用“Install Insights”和“Mobile SDK Insights”。不幸的是,这并没有解决我的问题。
谢谢。
【问题讨论】:
【参考方案1】:我不确定Error Domain=com.facebook.sdk Code=11
,但您必须检查您在 facebook 上的应用设置,并且某些迁移禁用最后三个选项(2012 年 7 月,2012 年 8 月的重大更改)。
:)
【讨论】:
【参考方案2】:当您遇到此错误时,您需要处理来自您的应用委托的响应。
- (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;
>
>
【讨论】:
以上是关于presentShareDialogWithParams 发布到 FB 墙上,但回调处理程序结果显示错误的主要内容,如果未能解决你的问题,请参考以下文章