zoukankan      html  css  js  c++  java
  • iOS开发日记4-第三方登录(ShareSDK)

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

     第三方登录的方法很多,最直接的方法就是去各大开发者平台申请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];

    }

    完成

    PS:适配iOS9.0

    http://wiki.mob.com/ios9-对sharesdk的影响(适配ios-9必读)/

    在提交审核的时候如果没有安装qq微信,提示未安装qq微信会被拒绝,使用如下方法即可

  • 相关阅读:
    JVM
    OLAP
    rocketMq学习
    redis的使用小记
    CRT配置端口转发
    冒泡排序
    spring AOP-切面编程
    linux下对jar包和war包进行重新打包
    oracle-sql性能优化
    遍历List,根据子项的某个属性分组
  • 原文地址:https://www.cnblogs.com/Twisted-Fate/p/4737011.html
Copyright © 2011-2022 走看看