facebook分享(链接、照片、视频)
来源:互联网 发布:258优化网站 编辑:程序博客网 时间:2024/05/01 00:39
官方文档:https://developers.facebook.com/docs/sharing/ios
1:在info.plist里填写fbid 和fb对应的url scheme
2:ios9填写白名单如下:
- <key>LSApplicationQueriesSchemes</key>
- <array>
- <string>fbapi</string>
- <string>fb-messenger-api</string>
- <string>fbauth2</string>
- <string>fbshareextension</string>
- </array>
- <key>NSAppTransportSecurity</key>
- <dict>
- <key>NSAllowsArbitraryLoads</key>
- <true/>
- <key>NSExceptionDomains</key>
- <dict>
- <key>akamaihd.net</key>
- <dict>
- <key>NSIncludesSubdomains</key>
- <true/>
- <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
- <false/>
- </dict>
- <key>facebook.com</key>
- <dict>
- <key>NSIncludesSubdomains</key>
- <true/>
- <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
- <false/>
- </dict>
- <key>fbcdn.net</key>
- <dict>
- <key>NSIncludesSubdomains</key>
- <true/>
- <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
- <false/>
- </dict>
- </dict>
- </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 *)pickerdidFinishPickingMediaWithInfo:(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 *)pickerdidFinishPickingMediaWithInfo:(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.";
- facebook分享(链接、照片、视频)
- 看视频分享链接
- 分享链接内容到Facebook和twitter
- 上海沙龙(接口测试自动化经验分享)照片和视频已上传
- facebook分享(附demo)
- 网易视频云技术分享:Facebook memcache优化经验
- facebook 分享
- Facebook照片缓存分析
- 博客中曾经分享的视频链接
- 优酷如何分享视频专辑链接
- iOS实现向多个社交网站(facebook,微信,微博,twitter等)分享的代码,支持iPhone和iPAD(分享链接编码)
- 分享 幸福的照片(转载)
- iOS 实现Facebook的分享(调用系统的分享)
- Facebook Haystack 管理百亿照片
- Java servlet上传文件(照片视频)
- unity3d 分享文字,图片,链接,文件到Facebook, twitter, delicious, tumblr, google reader
- Python视频全集百度网盘链接分享?
- Android分享视频链接到VK无法打开
- pta 5-2 任务调度的合理性
- 微信红包技术分析
- XML详解
- iOS开发中 Touch ID的使用
- [NOIP2011]聪明的质监员 D2 T2 二分答案
- facebook分享(链接、照片、视频)
- HDU 1258 Sum It Up
- How To Set Up Apache Virtual Hosts on Ubuntu 14.04 LTS
- 二维码扫描之zxing与zbar的优劣
- Bzoj3782:上学路线:组合数学+Lucas+CRT+DP
- expect安装和测试
- 利用Java生成静态HMTL页面
- 使用ksoap2 jar包时 android meganto soap 请求错误报错NullPointerException
- VMware虚拟机共享主机无线网络联网的设置方法