facebook分享(链接、照片、视频)

facebook分享(链接、照片、视频)官方文档 https developers facebook com docs sharing ios1 在 info plist 里填写 fbid 和 fb 对应的 urlscheme2 ios9 填写白名单如下 html viewplaincop nbsp nbsp nbsp nbsp nbsp nbsp array

1:在info.plist里填写fbid 和fb对应的url scheme

2:ios9填写白名单如下:

[html] view plain copy
在CODE上查看代码片
派生到我的代码片

  1. <key>LSApplicationQueriesSchemes</key>  
  2.     <array>  
  3.         <string>fbapi</string>  
  4.         <string>fb-messenger-api</string>  
  5.         <string>fbauth2</string>  
  6.         <string>fbshareextension</string>  
  7.     </array>  
  8.     <key>NSAppTransportSecurity</key>  
  9.     <dict>  
  10.         <key>NSAllowsArbitraryLoads</key>  
  11.         <true/>  
  12.         <key>NSExceptionDomains</key>  
  13.         <dict>  
  14.             <key>akamaihd.net</key>  
  15.             <dict>  
  16.                 <key>NSIncludesSubdomains</key>  
  17.                 <true/>  
  18.                 <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>  
  19.                 <false/>  
  20.             </dict>  
  21.             <key>facebook.com</key>  
  22.             <dict>  
  23.                 <key>NSIncludesSubdomains</key>  
  24.                 <true/>  
  25.                 <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>  
  26.                 <false/>  
  27.             </dict>  
  28.             <key>fbcdn.net</key>  
  29.             <dict>  
  30.                 <key>NSIncludesSubdomains</key>  
  31.                 <true/>  
  32.                 <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>  
  33.                 <false/>  
  34.             </dict>  
  35.         </dict>  
  36.     </dict>  

3:连接应用程序委托

要对 Facebook 登录或 Facebook 对话(或需要切换至原生 Facebook 应用程序或 Safari 的任何操作)的结果进行后置处理,您需要将AppDelegate 连接到FBSDKApplicationDelegate。在AppDelegate.m 中添加:

<pre name="code" class="objc"> // AppDelegate.m #import <FBSDKCoreKit/FBSDKCoreKit.h> - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [[FBSDKApplicationDelegate sharedInstance] application:application didFinishLaunchingWithOptions:launchOptions]; return YES; } - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { return [[FBSDKApplicationDelegate sharedInstance] application:application openURL:url sourceApplication:sourceApplication annotation:annotation ]; }

4:

用户通过您的应用将链接分享到 Facebook 时,会包括在帖子中显示的属性:

  • contentURL:要分享的链接
  • contentTitle:表示链接中的内容的标题
  • imageURL:在帖子中显示的缩略图的网址
  • contentDescription:内容的描述,通常为 2-4 个句子

FBSDKShareLinkContent 模型构建链接的分享内容。如需了解完整的属性列表,请参阅 FBSDKShareLinkContent 参考文档。

以下是如何触发分享的示例:

FBSDKShareLinkContent *content = [[FBSDKShareLinkContent alloc] init]; content.contentURL = [NSURL URLWithString:@"https://developers.facebook.com"];

注意:如果您的应用分享的是 iTunes 或 Google Play 商店的链接,我们不会发布您在分享中指定的任何图片或说明。相反,我们会发布通过网络爬虫直接从应用商店搜刮的一些应用信息,其中可能不包括图片。要预览转至 iTunes 或 Google Play 的链接分享,请在网址调试器中输入您的网址。

照片

用户可以使用分享对话框或自定义界面,通过您的应用将照片分享到 Facebook:

  • 照片大小必须小于 12MB
  • 用户需要安装版本 7.0 或以上的原生 iOS 版 Facebook 应用

FBSDKSharePhotoContent 模型构建照片的分享内容。如需了解完整的属性列表,请参阅 FBSDKSharePhotoContent 参考文档。

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 
       UIImage *image = info[UIImagePickerControllerOriginalImage]; FBSDKSharePhoto *photo = [[FBSDKSharePhoto alloc] init]; photo.image = image; photo.userGenerated = YES; FBSDKSharePhotoContent *content = [[FBSDKSharePhotoContent alloc] init]; content.photos = @[photo]; ... }

视频

应用用户可通过分享对话框或您专属的自定义界面将视频分享到 Facebook:

  • 视频大小必须小于 12MB。
  • 分享内容的用户应安装版本 26.0 或以上的 iOS 版 Facebook 客户端。

FBSDKShareVideoContent 模型构建视频的分享内容。如需了解完整的属性列表,请参阅 FBSDKShareVideoContent 参考文档。

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 
       NSURL *videoURL = [info objectForKey:UIImagePickerControllerReferenceURL]; FBSDKShareVideo *video = [[FBSDKShareVideo alloc] init]; video.videoURL = videoURL; FBSDKShareVideoContent *content = [[FBSDKShareVideoContent alloc] init]; content.video = video; ... }

视频网址 videoURL 必须是资产网址。例如,您可以从 UIImagePickerController 获取视频资产网址。

多媒体

应用用户可通过分享对话框从应用向 Facebook 分享同时包含照片和视频的内容。请注意以下事项:

  • 用户使用的 iOS 版本至少应为 7.0。
  • 分享内容的用户应安装版本 52.0 或以上的 iOS 版 Facebook 客户端。
  • 每个照片和视频元素的大小必须小于 12MB。
  • 用户每次可以分享最多包含 30 个照片和视频元素的内容。

使用 FBSDKShareMediaContent 模型构建多媒体分享内容。如需了解完整的属性列表,请参阅 FBSDKShareMediaContent 参考文档。

FBSDKSharePhoto *photo = [FBSDKSharePhoto photoWith... FBSDKShareVideo *video = [FBSDKShareVideo videoWith... FBSDKShareMediaContent *content = [FBSDKShareMediaContent new]; content.media = @[photo, video]; }

分享方式

构建模型处理内容后,您可以触发“分享”或“消息”对话框,或触发用于分享的专属自定义界面。

按钮

在 iOS 中,Facebook 提供用于触发分享的原生按钮。


“赞”按钮

“赞”按钮是用户与好友分享内容的快捷途径。轻触“赞”按钮即可为应用中的内容点“赞”,并将内容分享到 Facebook。要向视图添加“赞”按钮,请将下列代码片段添加到您的视图:

FBSDKLikeControl *button = [[FBSDKLikeControl alloc] init]; button.objectID = @"https://www.facebook.com/FacebookDevelopers"; [self.view addSubview:button];

“分享”按钮

实施“分享”按钮后,用户可将内容分享到自己的 Facebook 时间线、好友的时间线或小组中。“分享”按钮将调用分享对话框。要向视图添加“分享”按钮,请将下列代码片段添加到您的视图:

FBSDKShareButton *button = [[FBSDKShareButton alloc] init]; button.shareContent = content; [self.view addSubview:button];

“发送”按钮

用户可以使用“发送”按钮,以私密方式向好友和使用 Facebook Messenger 的联系人发送照片、视频和链接。“发送”按钮将调用“消息”对话框。要向视图添加“发送”按钮,请将下列代码片段添加到您的视图:

FBSDKSendButton *button = [[FBSDKSendButton alloc] init]; button.shareContent = content; [self.view addSubview:button];

如果未安装 Messenger 应用,“发送”按钮将隐藏。请确保此按钮隐藏时,您的应用布局是适当的。要检查“发送”按钮能否在当前设备上显示,可使用 FBSDKSendButton 属性 isHidden

if (button.isHidden) { 
           NSLog(@"Is hidden"); } else { 
           [self.view addSubview:button]; }

分享对话框

要使用 Facebook 构建的分享体验,您需要如以上内容建模部分中所述定义您的内容,然后调用分享对话框。例如,要使用分享对话框分享链接:

 FBSDKShareLinkContent *content = [[FBSDKShareLinkContent alloc] init]; content.contentURL = [NSURL URLWithString:@"http://developers.facebook.com"]; [FBSDKShareDialog showFromViewController:self withContent:content delegate:nil]; 

在之前版本的 iOS 版 SDK 中,您的应用必须先检查设备上是否安装了原生 Facebook 应用,然后才可打开分享对话框。如果用户未安装 Facebook 应用,则您必须自行提供代码,才能调用回退对话框。

现在,SDK 将自动检查设备上是否安装了原生 Facebook 应用。如果未安装,SDK 会将用户切换到默认浏览器并打开动态发布对话框。如果用户想要分享开放图谱动态,SDK 会打开网页分享对话框。

如果安装了原生 Facebook 应用,4.0-4.4 版的 SDK 会切换到原生 iOS 版 Facebook 应用,并在发布帖子后将控制权交还您的应用。如果使用 4.5+ 版 SDK,除非分享内容是开放图谱动态,否则用户会看到 iOS 分享表,而不会切换到原生 iOS 版 Facebook 应用。

“消息”对话框

“消息”对话框会切换到原生 iOS 版 Messenger 应用,并在发布帖子后将控制权交还您的应用。

[FBSDKMessageDialog showWithContent:content delegate:nil];

注意:iPad 当前不支持“消息”对话框。

iOS 集成

iOS 6+ 包括原生分享表,允许用户将状态更新、照片、视频和链接发布到 Facebook,并且支持设置帖子的分享对象和在帖子中圈出地点。您无法使用分享表分享开放图谱动态。Facebook SDK 支持使用此原生控件;从 4.5 版 Facebook SDK 开始,当您调用 Facebook 分享对话框时,用户会在大多数情况下获得此体验。

使用 iOS 分享表需要遵守 Facebook 开放平台政策,包括第 2.3 条,即规定应用不可以预先填写内容。就分享表而言,这意味着应用不可以使用不属于用户早期在使用应用时输入的内容,预先填写分享表的 initialText 字段。

此 API 还使用和 Facebook SDK 的其他部分一样的样式块。要显示原生 iOS 分享对话框,请使用:

FBSDKShareDialog *dialog = [[FBSDKShareDialog alloc] init]; dialog.fromViewController = self; dialog.content = content; dialog.mode = FBSDKShareDialogModeShareSheet; [dialog show];

请注意,需要“.fromViewController”才能显示分享表。

其他功能

Facebook 分享对话框可为您提供一些 API 分享方式所不具有的选项。

话题标签

您可以指定一个话题标签,让它随分享的照片、链接或视频一同显示。这个话题标签还会显示在分享对话框中,因此用户在发布之前可决定是否将它删除。

以下是为链接分享添加话题标签的示例。

FBSDKShareLinkContent *content = [[FBSDKShareLinkContent alloc] init]; content.contentURL = [NSURL URLWithString:@"https://developers.facebook.com"]; content.hashtag = [FBSDKHashtag hashtagWithString:@"#MadeWithHackbook"];

引文分享

经过您的设置,用户可以选择高亮一段文本,作为与分享的链接一同显示的引文。或者,您也可以预先定义与分享的链接一同显示的引文,例如文章中的醒目引文。不管使用哪种方式,引文都将在用户评论区之外的专用位置显示。

FBSDKShareLinkContent *content = [[FBSDKShareLinkContent alloc] init]; content.contentURL = [@"https://developers.facebook.com/products/sharing"]; content.quote = @"Learn quick and simple ways for people to share content from your app or website to Facebook.";






版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/231710.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mac用什么软件录屏_macbookair录屏快捷键

    mac用什么软件录屏_macbookair录屏快捷键录屏软件哪个好?你是否遇到过需要记录手机或者电脑屏幕的时候,就像是打着游戏、看着剧,突然想要记录此时屏幕上的内容。其实很多的场景都可以使用录屏软件来记录屏幕上的内容,像是工作、学习、娱乐上的内容。那有什么好用的录屏软件和方法,一起来看看下面有关的方法介绍!分享录屏软件一、手机专业录制软件如果你在手机上查看视频的话,除了使用手机中的屏幕录制方法。还可以使用专业的录屏软件。如借助手机中的“嗨格式录屏大…

    2025年11月25日
    3
  • 负采样方式

    负采样方式一、随机负采样二、曝光未点击三、混合负采样四、重要性采样五、有偏采样六、NCE采样参考:[mixednegativesampling]MixedNegativeSamplingforLearningTwo-towerNeuralNetworksinRecommendations(2020) [Youtube]Sampling-Bias-CorrectedNeuralModelingforLargeCorpusItemRecomme

    2022年6月29日
    24
  • nfv与云计算_云计算必学知识

    nfv与云计算_云计算必学知识云计算1.Saas软件即服务SaaS的实例:MicrosoftOfficeOnline(WordOnline,ExcelOnline等)服务,无需在本机安装,打开浏览器,注册账号,可以随时随地通过网络进行软件编辑,保存等,不需要用户去升级软件,维护软件等。平台即服务,把服务器平台作为一种对外提供的一种商业模式。系统对外提供接口服务,开发者可以利用这些接口进行开发业务或者应用,提供给用户使…

    2025年10月12日
    2
  • directx11是啥(polite什么意思)

    电脑爱好者朋友通常会在某款游戏最低配置要求以及某些显卡上看到有DirectX字样,一般DirectX有:Direct9.0、Direct10(简称DX9、DX10)以及时下最新的Direct11(简称DX11),很多朋友对于一些游戏中最低要求的DirectX版本很疑惑,也不知道为什么越来越多游戏都需要Direct10以上,甚至Direct11版本要求。那么DX11是什么呢?又代表着什么含…

    2022年4月14日
    79
  • Vue项目关于eslint

    Vue项目关于eslint  新公司的Vue项目没有配置eslint,虽然平时coding的时候都会按照eslint的标准去写,但是没有统一的配置后期项目代码review的时候总还是不太方便。  Vue的项目配置eslint还是很简单的。它属于依赖插件中的一种,可以像安装其他插件一样在命令行用npminstalleslint-g安装,也可以修改package.json文件去更新项目的依赖包,重新跑一遍npm…

    2022年6月18日
    28
  • 国外服务器直播网站,海外直播服务器搭建

    国外服务器直播网站,海外直播服务器搭建背景:最近有个朋友的APP需要在国外搭建一个直播服务器,因为他们的主播在韩国(主播主要是记者),而观众主要在国内,叫我帮忙给他们开发一个直播服务器。目前开源的直播服务程序有:SRS,Nginx-rtmp;如果是做开发的同学应该有所了解,SRS是基于C++写的,Nginx-rtmp模块是Ngxin的第三方C模块。一开始我是直接部署SRS/Ngxin-rtmp到我的韩国的服务器,结果直播rtmp或者…

    2022年5月12日
    122

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号