你的位置:首页 > 操作系统

[操作系统]iOS学习笔记4


今天博主有一个第三方登录的需求,遇到了一些困难点,在此和大家分享,希望能够共同进步.

 第三方登录的方法很多,最直接的方法就是去各大开发者平台申请id之后看官方文档直接集成,当然也有偷懒的方法.类似博主,使用的是ShareSDK进行第三方登录,当然也可以使用友盟进行第三方登录.第三方登录主要是通过拉取第三方的授权,获得第三方平台的用户ID,作为参数上传到自己的服务器中,换取令牌,达到登录的目的.

1.申请appKey ,去要集成的各大开发者平台申请

2.导入ShareSDK

3.配置URL Schemes

在这里配置URL Schemes,identifier随便填,能区别其他应用即可,URL Schemes按开发者平台要求填,通常是简称+appKey

4.添加依赖库

必须添加的依赖库如下:

libicucore.dylib

libz.dylib

libstdc++.dylib

JavaScriptCore.framework

以下依赖库根据社交平台添加

新浪微博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];

}

完成