IOS客户端接入Facebook,SSO授权
原貼地址: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具體需要調用哪個請參看官方文檔。
總結
以上是生活随笔為你收集整理的IOS客户端接入Facebook,SSO授权的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CS1.6参数设置
- 下一篇: 4、Oracle使用网络管理工具—Net