iPone,ios移动 app接入Facebook,facebook授权iPhone移动端开发
2012-08-24 17:50
281 查看
一 首先说明下:
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具体需要调用哪个请参看官方文档。
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具体需要调用哪个请参看官方文档。
相关文章推荐
- [HAXE] haxe接入IOS版FacebookSdK以及iOS开发遇到的问题总结(二)
- qt-qml移动开发之在ios上开发和部署app流程简单介绍
- 【转】使用Xcode中的iOS SDK给iphone开发出第一个App程序
- ios--插件开发--借助wax框架使用lua开发原生iPhone App
- qt-qml移动开发之在ios上开发和部署app流程简介
- 用python开发移动App(android、iOS)后台简述
- iOS开发(iPad/iPhone)设置app界面 默认横向显示的两种方法
- qt-qml移动开发之在ios上开发和部署app流程简介
- 移动App开发(包含iOS和Android转型)
- 提高到精通移动(android、IOS)App应用服务程序开发
- ios开发者创建app应用开发授权文件 实战方法
- iOS开发-移动开发中App设计规范
- Delphi XE8 iOS与Android移动应用开发(APP开发)[完整中文版]
- (iPhone/iPad开发)怎样判断ios app第一次启动
- qt-qml移动开发之在ios上开发和部署app流程简介
- IOS移动app开发中多种设备尺寸适配问题
- iPhone开发笔记(23)iOS应用发布时上传App icon时出现错误(image can't contain alpha channels or transparencies)
- 安卓和iOS移动APP开发设计应该考虑哪些问题
- ios开发者创建app应用开发授权文件 实战方法:
- (iPhone/iPad开发)怎样判断ios app 第一次启动