【问题标题】:iOS Facebook 4.0 SDK Share OpenGraph story with UIImage erroriOS Facebook 4.0 SDK 与 UIImage 错误共享 OpenGraph 故事
【发布时间】:2015-04-08 08:39:20
【问题描述】:

我需要发布一个包含用户生成图像的 OpenGraph 故事,而无需请求任何权限。

我已经按照这里发布的官方教程:https://developers.facebook.com/docs/sharing/opengraph/ios

这是我的代码:

NSDictionary *properties = @{@"og:type": @"minidraw-two.illustration",
                                     @"og:title": @"Illustration",
                                     @"og:description": @"iOS Vector illustration app"};
FBSDKShareOpenGraphObject *object = [FBSDKShareOpenGraphObject objectWithProperties:properties];

// Construct an FBSDKSharePhoto
FBSDKSharePhoto *photo = [[FBSDKSharePhoto alloc] init];
photo.image = image;
photo.userGenerated = YES;

FBSDKShareOpenGraphAction *action = [FBSDKShareOpenGraphAction actionWithType:@"minidraw-two.create" object:object key:@"minidraw-two:illustration"];
[action setPhoto:photo forKey:@"image"];

FBSDKShareOpenGraphContent *content = [FBSDKShareOpenGraphContent new];
content.action = action;
content.previewPropertyName = @"minidraw-two:illustration";

[FBSDKShareDialog showFromViewController:viewController
                                     withContent:content
                                        delegate:self];

发布此内容时,我收到以下错误:

Error Domain=com.facebook.Facebook.platform Code=100 "操作 无法完成。 (com.facebook.Facebook.platform 错误 100。)“ UserInfo=0x174070f00 {error_reason=缺少“类型”或 'fbsdk:create_object' for object: image, error_description=一个错误 共享操作时发生。,app_id=, 错误代码=100}

我不太确定这个错误是什么意思。我检查了 StackOverflow、Facebook 文档,但一无所获。

请指教。

【问题讨论】:

  • 嗨@Cristian,有任何更新或解决方案吗?
  • 不,遗憾的是什么都没有。我现在唯一的选择是使用非故事图像共享。

标签: ios facebook-graph-api uiimage


【解决方案1】:

阅读this FB bug report 后,我已将照片共享,没有任何错误。关键是将照片附加到 Open Graph object 而不是 action

// Add the photo to the OG object
[object setPhoto:photo forKey:@"og:image"];

照片仍未显示全角,但已被 FB 识别为 v4.0.1 中的有效错误,我将在收到更多信息后立即更新此答案。

更新:根据 FB 的说法,照片在 Open Graph 故事中不会全角显示是设计使然。

【讨论】:

  • 文档被严重破坏了,代码 sn-ps 都设置了 Facebook 操作的image 字段而不是对象!
  • 不,我不认为这是设计使然——设计明确指出,符合用户生成条件的图像 (userGenerated:YES) 应该广泛显示!照片绝对应该附在动作上,即使对于一个开放的图表故事,它也绝对应该是宽的。图片见designerhubinc.blogspot.com/2012/06/…
【解决方案2】:

如果你改变了

[FBSDKShareDialog showFromViewController:viewController withContent:content delegate:self];

[FBSDKShareAPI shareWithContent:content delegate:self];

并使用您的旧变体 [action setPhoto:photo forKey:@"image"]; 代码也可以工作

【讨论】:

  • 但这意味着内容在不显示共享对话框的情况下被共享,对吧? FBSDKShareAPI 是为自定义 UI 设计的......所以如果你真的想要使用 FBSDKShareDialog 的便利,那么就没有选择了。 ://
【解决方案3】:

2 fatuhoku - 我认为使用FBSDKShareAPI 更好,因为 1)您的应用程序不会切换到 FB 应用程序来呈现对话框 2) 您可以从您的应用程序控制您想要在 FB 中分享/发布的所有数据。例如,我的应用程序只共享它的内部数据,我不希望用户在对话框中向它添加评论。 3)您保留应用程序的 UI 样式,例如屏幕颜色,但 FB 对话框有自己的。 是的,你应该在使用FBSDKShareDialog 时做更多的工作,但请阅读我上面所说的;)

【讨论】:

  • 您是否有示例/博客/要点等说明您是如何做到的? Facebook 的文档在自定义故事方面没有提供太多内容。
【解决方案4】:

此问题已修复。 FBSDKShareDialogFBSDKShareAPI 现在的工作方式相同。相关错误报告here。官方文档也更新了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-23
    • 2015-06-11
    • 2017-07-01
    • 2014-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多