【发布时间】:2013-06-03 14:18:34
【问题描述】:
当我从我的应用程序启动 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,它就可以正常工作。
编辑: 如果我在没有任何 url 的情况下通过 appcall,它就可以工作!为什么?
action[@"mystory"] = @{
@"fbsdk:create_object": @YES,
@"type": @"appname:mystory",
@"title":@"title",
@"description":@"text"
};
【问题讨论】:
-
Facebook 提供的关于这方面的文档很差......但我相信如果你传递一个 URL,Facebook 会尝试废弃它以寻找 Open Graph 元标记,如果其中一个是错误的,整个事情都出错了。尝试将您的 URL 放入 Facebook 调试器,看看它是否发现任何错误:developers.facebook.com/tools/debug
-
我的印象是,您可以创建用户拥有的对象,从而绕过对后端服务器的需求。这是准确的吗?此外,我认为 @"fbsdk:create_object": @YES,实际上是这样做的。是否 shareDialog 应该将用户带到本机 iOS facebook 应用程序?
标签: ios facebook facebook-graph-api facebook-opengraph