基於第三方QQ授權登入
基於iOS實現APP的第三方登陸之QQ和新浪微博授權,在開發中明顯能感覺到兩家SDK的差異和易用性,這裡先贅述下接入第三方SDK時的一個基本的步驟:
1,確定用需中需要這樣一個功能,如果QQ登入,似乎主流了,APP註冊標配啊;
2,找到相關的開放平臺,如QQ互聯平臺,http://connect.qq.com/;
3,註冊成功後建立自己的APP,填寫一堆基本訊號後獲得一個App_Key,就是你APP的唯一識別碼;
3,下載對應的SDK,並且閱讀其中的開發文件或demo,通常看開發文件比較直觀,如果看demo,有些SDK的demo簡直不忍直視;
4,嵌入SDK中對應功能,測試成功後提交第三方平臺稽核,等稽核通過後就可以正式接入第三方SDK的功能了;
5,完成所有功能後就提交AppStore稽核吧,大概一週左右即可。
呃,說了這麼多,讓我們來進入QQ登入和新浪微博登入授權具體操作,這種簡便的登入方式大大簡化了使用者的註冊之苦,同時也擴充套件了APP的社交性,更易於分享和推廣,在登入後都可以獲得使用者的唯一ID,只有APP後臺繫結這個ID,就等於使用者註冊了該APP一樣,似乎變成了各大APP的標配登入模式,吐槽,似乎抽屜式設計慢慢的又變回TabBar式了,具體原因可參考網路資源。
一,QQ登入授權開發:
1,按照開發文件匯入SDK,然後把註冊成功後獲取到的Key加入到Url Schemes中,例如:tencent1101737816,注意這些文件寫的很清楚;
2,在AppDelegate.m中實現下面方法,注意,直接複製程式碼,兩者寫其一即可,當然了別忘了引入標頭檔案,這是用作返回APP時候用的回撥函式
?1 2 3 4 5 6 7 8 9 10 |
<span
style= "font-size:14px;" ><span
style= "font-size:14px;" >-
(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
return
[TencentOAuth HandleOpenURL:url];
}
-
(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
return
[TencentOAuth HandleOpenURL:url];
}
</span></span>
|
_tencentOAuth = [[TencentOAuth alloc] initWithAppId:kQQ_KEY andDelegate:self]; //註冊
?1 2 |
<span
style= "font-size:14px;" >
NSArray *_permissions = [NSArray arrayWithObjects:kOPEN_PERMISSION_GET_INFO, kOPEN_PERMISSION_GET_USER_INFO, kOPEN_PERMISSION_GET_SIMPLE_USER_INFO, nil];
[_tencentOAuth
authorize:_permissions inSafari:NO]; //授權</span>
|
注意:在官方文件中提到授權程式碼是: _permissions = [[NSArray arrayWithObjects:@"get_user_info", @"add_t", nil] retain]; //官方授權程式碼
如果你寫成這樣,你會發現始終登入不了,提示許可權不夠,非常坑爹,正確授權程式碼如上面的寫法,切記
4,實現登入成功與否的回撥函式,實現協議TencentSessionDelegate,程式碼如下:
?1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
<span
style= "font-size:14px;"
|