FaceBook messanger 分享图片的坑

作者: 半城coding | 来源:发表于2017-01-07 12:07 被阅读1804次

    项目需要做海外版本,因此分享需要集成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

    相关文章

      网友评论

        本文标题:FaceBook messanger 分享图片的坑

        本文链接:https://www.haomeiwen.com/subject/eqqfbttx.html