facebook分享(附demo)

想获取Facebook上的资源,要经历登录帐户、请求数据、接收数据三部分: 
 
从官方SDK所给的Demo程序,我们可以了解到,首先要创建Facebook 对象

static NSString *kAppId = @"450051905053297";

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文件中需要添加如下项目:



-(void)loginFacebook:(id)sender
{
    FirstFbAppDelegate *delegate = (FirstFbAppDelegate *)[[UIApplication sharedApplication] delegate];
    if (![[delegate facebook] isSessionValid])
    {
        [[delegate facebook] authorize:permissions];//弹出登陆facebook的界面
    }
    else
    {
        [self showLoggedIn];//已授权,直接登录
    }
}

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

进入到这个方法:

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

可以看到:

- (void)authorize:(NSArray *)permissions 
{
    self.permissions = permissions;
    [self authorizeWithFBAppAuth:YES safariAuth:NO];//
}

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

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


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

- (void)fbDidLogin;

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

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

-(void)fbDidNotLogin:(BOOL)cancelled;

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

- (void)fbDidLogout;

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

- (void)dialog:(NSString *)action

    andParams:(NSMutableDictionary *)params

  andDelegate:(id <FBDialogDelegate>)delegate;

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

Demo



0
0

你可能感兴趣的:(facebook分享(附demo))