【问题标题】:FBSDKShareDialog doesn't share Photo without Facebook App installed, IOSFBSDKShareDialog 在没有安装 Facebook 应用程序的情况下不分享照片,IOS
【发布时间】:2015-06-06 02:28:02
【问题描述】:

我正在使用 Facebook SDK 4.0,https://developers.facebook.com/docs/sharing/ios#share_dialog 我正在使用FBSDKShareDialog 分享照片。如果用户安装了 Facebook 应用程序,它会分享照片, 但是当用户没有安装 FB App 时它会失败。但他们说“如果有人没有安装 Facebook 应用程序,它将自动退回到基于网络的对话。” 我知道有什么问题,请帮助我使用 FBSDK 4.0 分享照片。

我的代码是

FBSDKSharePhoto *photo = [[FBSDKSharePhoto alloc] init];
photo.image = self.capturedImageView.image;
photo.userGenerated = YES;
FBSDKSharePhotoContent *content = [[FBSDKSharePhotoContent alloc] init];
content.photos = @[photo];
[FBSDKShareDialog showFromViewController:self
                             withContent:content
                                delegate:self];

这是错误报告

错误:“com.facebook.sdk:FBSDKErrorArgumentNameKey=shareContent, com.facebook.sdk:FBSDKErrorDeveloperMessageKey=订阅分享对话框 支持 FBSDKShareLinkContent。”

【问题讨论】:

    标签: ios facebook facebook-ios-sdk facebook-sdk-4.0


    【解决方案1】:

    之前先配置iOS设备的Facebook账号,然后使用下面的代码就可以了:

    FBSDKSharePhoto *photo = [[FBSDKSharePhoto alloc] init];
    
    photo.image = self.capturedImageView.image;
    
    photo.userGenerated = YES;
    
    FBSDKSharePhotoContent *content = [[FBSDKSharePhotoContent alloc] init];
    
    content.photos = @[photo];
    
    [FBSDKShareDialog showFromViewController:self
                                 withContent:content
                                    delegate:self];
    

    【讨论】:

    • 获取错误 Domain=com.facebook.sdk.share Code=2 "操作无法完成。(com.facebook.sdk.share 错误 2.)" UserInfo=0x7faf8e99c8c0 {com. facebook.sdk:FBSDKErrorArgumentValueKey=, com.facebook.sdk:FBSDKErrorDeveloperMessageKey=Feed 分享对话框支持 FBSDKShareLinkContent., com.facebook.sdk:FBSDKErrorArgumentNameKey=shareContent}
    【解决方案2】:

    我也遇到了同样的问题,因为文档还说它们提供了回退机制,这在这种情况下似乎不是真的:

    内置共享后备

    在过去的 iOS SDK 版本中,您的应用必须检查 本机,在打开共享对话框之前安装的 Facebook 应用程序。 如果此人没有安装应用程序,您必须提供您的 自己的代码来调用回退对话框。

    现在,SDK 会自动检查本机 Facebook 应用。如果它 未安装,SDK 将人们切换到他们的默认浏览器和 打开提要对话框。如果有人想分享一个 Open Graph 故事, SDK 打开 Web 共享对话框。

    【讨论】:

    • 从 facebook ios sdk 4.10.0 开始,如果没有安装原生 Facebook 应用程序,仍然没有后备。
    【解决方案3】:

    FBSDKShareDialog 仅支持 FBSDKShareLinkContent 发布图片或 URL。所以要使用分享对话框,您必须使用 FBSDKShareLinkContent。

    您可以按如下方式使用它:

    FBSDKShareLinkContent *content = [[FBSDKShareLinkContent alloc] init];
        content.imageURL = [NSURL URLWithString:@"http://upload.wikimedia.org/wikipedia/commons/3/36/Hopetoun_falls.jpg"];
        [FBSDKShareDialog showFromViewController:self
                                     withContent:content
                                        delegate:self];
    

    如果您想分享链接,请使用content.contentURL

    参考:https://developers.facebook.com/docs/sharing/ios#share_dialog

    如果您使用的是 FBSDKSharePhoto,则需要安装原生 Facebook for iOS 应用。

    参考:https://developers.facebook.com/docs/sharing/ios#photos

    【讨论】:

    • 你能给我一些如何使用 FBSDKSharePhoto 的示例链接吗?我没有发现 facebook doc 对多张照片共享有多大帮助
    • @Dheeraj FBSDKSharePhotoContent,为什么这是不可能的。我想从图像选择器中发布照片。他们为什么要使用 FBSDKShareLinkContent。反正有没有使用 FBSDKSharePhotoContent。提前非常感谢
    • 其实 FBSDKShareDialog 也支持 FBSDKSharePhotoContent : - /
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-27
    • 2017-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多