当我从我的应用程序启动Facebook时,无法发布对话框,因为一旦显示共享对话框,FB应用程序就会关闭。
未调用完成处理程序。没有错误。没有成功。
id<FBOpenGraphAction> action = (id<FBOpenGraphAction>)[FBGraphObject graphObject];
action[@"mystory"] = @{
@"fbsdk:create_object": @YES,
@"type": @"appname:mystory",
@"title":@"title",
@"url": @"http://www.foo.bar",
@"description":@"text"
};
FBAppCall *appCall = [FBDialogs presentShareDialogWithOpenGraphAction:action
actionType:@"appname:myaction"
previewPropertyName:@"mystory"
handler:^(FBAppCall *call, NSDictionary *results, NSError *error) {
if(error) {
NSLog(@"Error: %@", error.description);
} else {
NSLog(@"Success!");
}
}];
有没有人看到我做错了什么?
如果我只使用presentShareDialogWithLink,它可以正常工作。
修改: 如果我通过appcall没有任何网址,它的工作原理!为什么?
action[@"mystory"] = @{
@"fbsdk:create_object": @YES,
@"type": @"appname:mystory",
@"title":@"title",
@"description":@"text"
};
答案 0 :(得分:1)
我使用来自https://developers.facebook.com/docs/howtos/share-dialogs-ios-sdk/的示例代码有一个非常类似的问题(它肯定会进入代码的Share Dialog部分而不是Feed对话框):我的应用程序进入后台和facebook应用程序正在出现,只是立即被解雇,返回我的应用程序。
经过一番搜索后,我发现了几个对URL处理设置的引用,并决定仔细检查应用程序集成。我发现在从3.2到3.5的过程中有一些我错过的东西,特别是plist中的FacebookDisplayName条目,openURL函数的变化&amp;启用共享对话框测试版功能,如下所述:https://developers.facebook.com/docs/tutorial/iossdk/upgrading-from-3.2-to-3.5/
毕竟,问题已经消失:对话框显示正确,我可以愉快地分享内容。不幸的是,我无法告诉你上述哪一项修改确实解决了这个问题,但是可能值得仔细检查它们。
答案 1 :(得分:0)
检查:
“appname”是您实际应用的命名空间
“mystory”是实际的对象类型
“myaction”是您的行动名称
您需要一个可以托管的工作网址。您提供的“http://www.foo.bar”不能被Facebook取消,也无法使用。
答案 2 :(得分:-1)
当您在appcall中有URL时,它是否与您在Facebook上的应用配置中的应用域名框中输入的URL匹配?如果你的appcall中的网址和你在Facebook上的应用配置中输入的网址不同,那么通话将会失败,因为这可能是原因。