项目需要做海外版本,因此分享需要集成facebook messanger。由于这两个都是facebook旗下的sdk,因此只要到facebook开发者官网上下载对应的sdk。
按照官网的步骤一步一步集成下来,产品将申请的faceBook分享需要的 app_id 和 secretKey给我们(坑就此埋下了)。然后配置项目中 info.list 需要配置三个key 分别是
facebookAPPid (产品给) faceBookDisplayName (产品没给,自己写了项目名称)和 url schemes(官网有)。
1、facebook 分析图片
项目前期只做了分享视频的功能,这个配置work的。 最近需要要求分享图片,却总是分享失败。核对过几次代码都没问题,最后在 失败回调中打印出来的info信息中显示faceBookDisplayName 与产品在开发者网站上面填写的不一致。登录开发者账号将产品填写的faceBookDisplayName 的内容拷贝到 info.plist文件中。然后运行分享图片一切正常。faceBook在分享图片的时候会验证 faceBookDisplayName 的值与开发者后台填写的是否一致
2、messanger分享在 ipad和iphone上的坑
messanger在ipad上面分享要添加 "fb-messenger-platform" urlSchemes,
在ipad的上面分享时只能调 FBSDKMessengerSharer 的api,在iphone设备上可以与facebook的share 混合使用。 即用 facebook 分享api构建分享对象
分享链接
FBSDKShareLinkContent *content = [[FBSDKShareLinkContent alloc] init];
content.contentURL = [NSURL URLWithString:@"https://developers.facebook.com"];
分享图片
UIImage *image = info[UIImagePickerControllerOriginalImage];
FBSDKSharePhoto *photo = [[FBSDKSharePhoto alloc] init];
photo.image = image; photo.userGenerated = YES;
FBSDKSharePhotoContent *content = [[FBSDKSharePhotoContent alloc] init];
content.photos = @[photo];
分享视频
FBSDKShareVideo *video = [[FBSDKShareVideo alloc] init];
video.videoURL = videoURL;
FBSDKShareVideoContent *content = [[FBSDKShareVideoContent alloc] init];
content.video = video;
然后用
[FBSDKMessageDialog showWithContent:content delegate:nil];
分享出去 就ok
官方明确写出 FBSDKMessageDialog 不支持ipad分享
Paste_Image.png
网友评论