facebook share

原文:http://blog.csdn.net/shenjx1225/article/details/8517120

想获取Facebook上的资源,要经历登录帐户、请求数据、接收数据三部分:

从官方SDK所给的Demo程序,我们可以了解到,首先要创建Facebook 对象

[plain] view plain copy
  1. static NSString *kAppId = @"450051905053297";  
  2.   
  3. facebook = [[Facebook alloc] initWithAppId:kAppId andDelegate:rootVC];  

其中,kAppId是注册Facebook后,到Facebook开发者平台申请的appID。(官网有视频说明如何申请:http://developers.facebook.com/docs/getting-started/facebook-sdk-for-ios/3.1/)

Facebook通过此ID来获取你为Facebook开发的程序的信息。

在plist文件中需要添加如下项目:



[plain] view plain copy
  1. -(void)loginFacebook:(id)sender  
  2. {  
  3.     FirstFbAppDelegate *delegate = (FirstFbAppDelegate *)[[UIApplication sharedApplication] delegate];  
  4.     if (![[delegate facebook] isSessionValid])  
  5.     {  
  6.         [[delegate facebook] authorize:permissions];//弹出登陆facebook的界面  
  7.     }  
  8.     else  
  9.     {  
  10.         [self showLoggedIn];//已授权,直接登录  
  11.     }  
  12. }  

点击登录按钮,首先判断是否已经授权,若已授权,则直接显示授权后的操作界面。

进入到这个方法:

[[delegatefacebook] authorize:permissions];//弹出登陆facebook的界面

可以看到:

[plain] view plain copy
  1. - (void)authorize:(NSArray *)permissions   
  2. {  
  3.     self.permissions = permissions;  
  4.     [self authorizeWithFBAppAuth:YES safariAuth:NO];//  
  5. }  

第一个参数若为YES,如果你的设备安装了facebook app,那么会打开app,询问你是否授权,若为NO,则在你的程序内弹出页面询问是否授权。

 第二个参数若为yes,则在safari浏览器中询问是否授权,否则在你的程序内弹出页面询问是否授权。


 FBSessionDelegate是授权和登出需要用到的代理,在使用弹出框询问授权时,账号密码输入完毕收,会回调:

[plain] view plain copy
  1. - (void)fbDidLogin;  

在这里,你可以做授权后的操作。

 在弹出框询问是否授权时,左上角有个按钮,是取消授权的,会调用下面的方法:

[plain] view plain copy
  1. -(void)fbDidNotLogin:(BOOL)cancelled;  

登出时会调用下面的方法:

[plain] view plain copy
  1. - (void)fbDidLogout;  

分享内容到facebook会调用下面方法:

- (void)dialog:(NSString *)action

    andParams:(NSMutableDictionary *)params

  andDelegate:(id <FBDialogDelegate>)delegate;

具体使用可以参考demo和官方文档:

Demo


你可能感兴趣的:(facebook share)