IOS客户端接入FaceB,SSO授权

转载:http://blog.csdn.net/pjk1129/article/details/8053165


这将对自己的客户端分享功能非常有用!类似的新浪微博也是同一个道理!

原贴地址:http://blog.csdn.net/wxq888/article/details/7905003


一 首先说明下

1:Facebook采用的时Oauth2.0授权

2: 说明下什么是sso

        SSO英文全称Single Sign On,单点登录。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。对于Facebook的移动应用接入来说,意思就是如果用户手机上安装了facebook官方客户端并登录了,那么我们写的应用,授权facebook时,就不需要输入用户名和密码了,程序里call下facebook打声招呼就行了。这个用户体验是不是很棒~国内的新浪微博好像也快推出sso了~ 

3:Facebook的sso说明:

     a:要实现sso,Facebook客户端的版本要求3.2.3或更高版本。

     b:如果用户手机里没有装Facebook客户端或者版本过底,那么SDK将打开safari浏览器,在浏览器中登陆后,skd可以利用safari浏览器的cookie中的access_token.

     c:如果程序运行在一个不支持多任务的系统,sdk将弹出一个UIWebView,提示用户登录授权。个人关于Facebook sso的见解:sso用户体验很不错,关于第二点,调用safari浏览器来登录,我觉得很多国内用户都不用safari浏览器,所以这个代码可以在sdk中屏蔽调。如果用户没有装facebook官方客户端的话,就直接弹登录框了~不过国内由于需要翻墙才能上facebook,估计用户也不多,不知到国外用户用safari浏览器的多不多?还是有其他浏览器。

二:准备工作

 下载Facebook ios sdk:官方下载地址:http://developers.facebook.com/ios/。官方现在得sdk版本已经是3.0.8了,应该差不了太多。我得sdk是两个月前下载得,我已上传倒csdn资源中,下载地址:http://download.csdn.net/download/wxq888/4522172

三:正式开始

1:把sdk目录下src目录文件导入到工程中

2:在AppDelegate中初始化Facebook对象 在appDelegate得头文件和m文件中加入下面得代码

#import "FBConnect.h"

Facebook *facebook;

@property (nonatomic, retain) Facebook *facebook;

@synthesize facebook;

facebook = [[Facebook alloc] initWithAppId:your asp id andDelegate:nil]; 

3:实现sso回调代码,也就是当应用程序委托Facebook官方客户端授权后,官方客户端要回调应用程序传回access token。在appDelegate中添加下面代码:

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {

return [self.facebook handleOpenURL:url];

}

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {

return [self.facebook handleOpenURL:url];

4:在Info.plist文件中增加sso回调url,以告诉Facebook官方客户端该调用谁。如图所示,回调地址格式是fb.your_app_id.需要修改为自己申请得appid。


5: 调用sdk api登录 AppDelegate *delegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; [[delegate facebook] authorize:permissions];

6:如果登录没有问题,就会回调Facebook.m得 (void)fbDialogLogin:(NSString *)token expirationDate:(NSDate *)expirationDate 这个函数,你需要在这个函数中处理授权成功代码。保存token值等操作。如果有错误会调用- (void)fbDialogNotLogin:(BOOL)cancelled 这个函数。

7:利用skd调用其他api。比如请求用户资料。 需要调用:[self requestWithGraphPath:@"me" andDelegate:self];。其他api具体需要调用哪个请参看官方文档。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值