我正在尝试运行Facebook提供的Open Graph Action的示例,但没有任何反应。 调试时我看到动作已创建但在[FBDialogs presentShareDialog ...]中它只是跳过并跳转到函数的末尾。你为什么认为这是?我读到在IOS模拟器中运行的sharedialog不能但不应该产生错误或什么?或者,如果我在模拟器上运行它应该没有任何实际发生?
-(IBAction)ShareFB:(id)sender{
id<FBOpenGraphAction> action = (id<FBOpenGraphAction>)[FBGraphObject graphObject];
[action setObject:@"https://example.com/book/Snow-Crash.html" forKey:@"book"];
[FBDialogs presentShareDialogWithOpenGraphAction:action
actionType:@"books.reads"
previewPropertyName:@"book"
handler:^(FBAppCall *call, NSDictionary *results, NSError *error) {
if(error) {
NSLog(@"Error: %@", error.description);
} else {
NSLog(@"Success!");
}
}];
参考文字:https://developers.facebook.com/docs/ios/share-dialog/#tips
答案 0 :(得分:0)
我没有iOS开发体验,但看起来该示例使用的是自托管对象,这意味着Open Graph对象定义可以在Facebook服务器提取和解析的特定URL中指定的HTML标记中找到。您的示例是在https://example.com/book/Snow-Crash.html
寻找一些“书籍”对象例如,看起来这是一个简单的URL,并且不包含“book”的任何实际Open Graph属性。 Facebook提供了一个工具来读取URL并查看Facebook在关注Open Graph对象时所寻找和获取的内容:https://developers.facebook.com/tools/debug/og/object?q=https%3A%2F%2Fexample.com%2Fbook%2FSnow-Crash.html
基本上,您需要设置一个网站,并使用某些特定的元标记在特定的URL上定义对象。请阅读此处了解更多相关信息:https://developers.facebook.com/docs/opengraph/using-objects/