今天博主有一個第三方登錄的需求,遇到了一些困難點,在此和大家分享,希望能夠共同進步.
第三方登錄的方法很多,最直接的方法就是去各大開發者平臺申請id之后看官方文檔直接集成,當然也有偷懶的方法.類似博主,使用的是ShareSDK進行第三方登錄,當然也可以使用友盟進行第三方登錄.第三方登錄主要是通過拉取第三方的授權,獲得第三方平臺的用戶ID,作為參數上傳到自己的服務器中,換取令牌,達到登錄的目的.
1.申請appKey ,去要集成的各大開發者平臺申請
2.導入ShareSDK
3.配置URL Schemes
在這里配置URL Schemes,identifier隨便填,能區別其他應用即可,URL Schemes按開發者平臺要求填,通常是簡稱+appKey
4.添加依賴庫
必須添加的依賴庫如下:
libicucore.dylib
libz.dylib
libstdc++.dylib
以下依賴庫根據社交平臺添加
新浪微博SDK依賴庫
ImageIO.framework
QQ好友和QQ空間SDK依賴庫(新注冊騰訊開放平臺帳號只支持SSO授權,只是老開發者才可以使用網頁授權)
libstdc++.dylib
libsqlite3.dylib
5.在didFinishLaunch中注冊appKey,初始化
/**ShareSDK 集成*/
[ShareSDK registerApp:@"appKey"];
#PRagma mark-------
[ShareSDK connectSinaWeiboWithAppKey:@"appKey"
appSecret:@"APPSecret"
redirectUri:@"http://www.baidu.com"];
[ShareSDK connectQZoneWithAppKey:@"appKey"
appSecret:@"APPSecret"
qqApiInterfaceCls:[QQApiInterface class]
tencentOAuthCls:[TencentOAuth class]];
[WXApi registerApp:APP_ID];
[ShareSDK connectWeChatWithAppId:APP_ID //微信APPID
appSecret:APP_SECRET //微信APPSecret
wechatCls:[WXApi class]];
6.在openURL中回調
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
return [ShareSDK handleOpenURL:url
sourceApplication:sourceApplication
annotation:annotation
wxDelegate:self];
}
7. 在登錄界面進行登錄
#pragma mark -Weixin 登錄
- (void)loginWeixinBtnClicked {
[ShareSDK getUserInfoWithType:ShareTypeWeixiTimeline
authOptions:_authOptions
result:^(BOOL result, id<ISSPlatformUser> userInfo, id<ICMErrorInfo> error) {
if (result)
{
//將從第三方平臺獲取的參數上傳服務器
NSDictionary *dict = @{@"udid" : [userInfo uid],
@"client" : YORequest_Client
};
[self startTestLoginWithDictionary:dict withIsFrom:YES];
}
完成
PS:適配iOS9.0
http://wiki.mob.com/ios9-對sharesdk的影響(適配ios-9必讀)/
在提交審核的時候如果沒有安裝qq微信,提示未安裝qq微信會被拒絕,使用如下方法即可
新聞熱點
疑難解答