前期准备:去facebook官网注册facebook帐号、创建app应用、下载SDK,在工程中导入Xcode中、配置xcode工程(参考developers.facebook.com官网)
注:在appDelegate中要连接应用委托,对于需要切换到原生Facebook应用或Safari的操作
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[[FBSDKApplicationDelegate sharedInstance] application:application
didFinishLaunchingWithOptions:launchOptions];
return YES;
}
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
BOOL handled = [[FBSDKApplicationDelegate sharedInstance] application:application
openURL:url
sourceApplication:options[UIApplicationOpenURLOptionsSourceApplicationKey]
annotation:options[UIApplicationOpenURLOptionsAnnotationKey]
];
return handled;
}
记录应用激活
- (void)applicationDidBecomeActive:(UIApplication *)application {
[FBSDKAppEvents activateApp];
}
1.facebook 登录
facebook的登录按钮可使用facebook自带的登录按钮,也可使用自定义的按钮。
(1)facebook再带的登录按钮
FBSDKLoginButton只需展示在view上,点击事件也不用写即可实现正常的登录和退出
如果想对登录成功或失败的结果进行处理,遵循代理FBSDKLoginButtonDelegate
在回调方法中进行处理
(void)loginButton:(FBSDKLoginButton *)loginButton didCompleteWithResult:(FBSDKLoginManagerLoginResult *)result error:(NSError *)error
(2)facebook自定义的登录按钮
按钮响应方法
FBSDKLogin *manager=[[FBSDKLogin alloc] init];
[manager logInWithReadPermissions:@[@"public_profile", @"email", @"user_friends"] fromViewController:[IAWindowManager shareInterface].loginViewController handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
}];
如果应用需要请求除 public_profile、email和 user_friends 以外的权限,则必须先通过 Facebook 的审核才能发布。详细了解审核流程以及通过审核的必要条件。
登录成功之后在登录结果result中都会包含token,需要发给服务器去facebook平台进行登录验证。
2.facebook 分享
FBSDKShareLinkContent *content=[[FBSDKShareLinkContent alloc]init];
content.contentTitle=@"";
content.contentURL = @"";
content.contentDescription=@"";
content.imageURL=@"";
FBSDKShareDialog *ddd=[[FBSDKShareDialog alloc]init];
ddd.mode=FBSDKShareDialogModeFeedBrowser;
ddd.shareContent=content;
ddd.delegate=self;
[ddd show];
遵守代理以后会有成功失败取消的回调方法
- (void)sharer:(id<FBSDKSharing>)sharer didCompleteWithResults:(NSDictionary *)results
- (void)sharer:(id<FBSDKSharing>)sharer didFailWithError:(NSError *)error
- (void)sharerDidCancel:(id<FBSDKSharing>)sharer
3.facebook 邀请好友
FBSDKAppInviteContent *content = [[FBSDKAppInviteContent alloc] init];
content.appLinkURL = 应用链接网址,接受人点击应用邀请页面的install/play按钮时,所打开的应用链接(必填)
content.appInvitePreviewImageURL= 预览图片网址,邀请中所使用图片的网址(不是必填)
[FBSDKAppInviteDialog showFromViewController:nil withContent:content delegate:self];
影响方法
- (void)appInviteDialog:(FBSDKAppInviteDialog *)appInviteDialog didCompleteWithResults:(NSDictionary *)results
- (void)appInviteDialog:(FBSDKAppInviteDialog *)appInviteDialog didFailWithError:(NSError *)error
更多功能开发参考facebook开发文档