IOS项目集成ShareSDK实现第三方登录

目前我使用的ShareSDK是简洁版,以下内容摘自ShareSDK简洁版集成文档:官方下载ShareSDK iOS 2.8.8,地址:http://sharesdk.cn/

第一步:将下载的SDK解压后导入您的工程中,见下图
这里写图片描述
拖到工程中后弹出以下对话框,勾选”Copy items into destination group’s folder(if needed)”,并点击“Finish“按钮, 如图
这里写图片描述
注意:请务必在上述步骤中选择“Create groups for any added folders”单选按钮组。如果你选择“Create folder references for any added folders”,一个蓝色的文件夹引用将被添加到项目并且将无法找到它的资源。

第二步:添加依赖库
添加步骤见下图
这里写图片描述

必须添加的依赖库如下:

libicucore.dylib

libz.dylib

libstdc++.dylib

JavaScriptCore.framework

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

新浪微博SDK依赖库

ImageIO.framework

QQ好友和QQ空间SDK依赖库(新注册腾讯开放平台帐号只支持SSO授权,只是老开发者才可以使用网页授权)

libstdc++.dylib

libsqlite3.dylib

到这里,我们的集成工作已经结束了,接下来,开始是初始化,见以下代码:

AppDelegate.m

导入
#import "AppDelegate.h"
#import <TencentOpenAPI/QQApiInterface.h>
#import <TencentOpenAPI/TencentOAuth.h>
#import <ShareSDKConnector/ShareSDKConnector.h>
#import "WXApi.h"
#import <ShareSDK/ShareSDK.h>


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    /**
     *  设置ShareSDK的appKey,如果尚未在ShareSDK官网注册过App,请移步到http://mob.com/login 登录后台进行应用注册,
     *  在将生成的AppKey传入到此方法中。
     *  方法中的第二个参数用于指定要使用哪些社交平台,以数组形式传入。第三个参数为需要连接社交平台SDK时触发,
     *  在此事件中写入连接代码。第四个参数则为配置本地社交平台时触发,根据返回的平台类型来配置平台信息。
     *  如果您使用的时服务端托管平台信息时,第二、四项参数可以传入nil,第三项参数则根据服务端托管平台来决定要连接的社交SDK。
     */
    [ShareSDK registerApp:@"ShareSDK官网申请的appKey"
          activePlatforms:@[@(SSDKPlatformTypeSinaWeibo), @(SSDKPlatformTypeQQ), @(SSDKPlatformTypeWechat)]
                 onImport:^(SSDKPlatformType platformType) {

                     switch (platformType)
                     {
                         case SSDKPlatformTypeWechat:
                             [ShareSDKConnector connectWeChat:[WXApi class]];
                             break;
                         case SSDKPlatformTypeQQ:
                             [ShareSDKConnector connectQQ:[QQApiInterface class] tencentOAuthClass:[TencentOAuth class]];
                             break;
                         default:
                             break;
                     }

                 }
          onConfiguration:^(SSDKPlatformType platformType, NSMutableDictionary *appInfo) {

              switch (platformType)
              {
                  case SSDKPlatformTypeSinaWeibo:
                      //设置新浪微博应用信息,其中authType设置为使用SSO+Web形式授权
                      [appInfo SSDKSetupSinaWeiboByAppKey:@"新浪开放平台的appKey"
                                                appSecret:@"XXXXXXXX"
                                              redirectUri:@"http://www.sharesdk.cn"
                                                 authType:SSDKAuthTypeBoth];
                      break;
                  case SSDKPlatformTypeQQ:
                      //设置Facebook应用信息,其中authType设置为只用SSO形式授权
                      [appInfo SSDKSetupQQByAppId:@"QQ开放平台申请的appKey" appKey:@"XXXXXXX" authType:SSDKAuthTypeBoth];
                      break;
                  case SSDKPlatformTypeWechat:
                      [appInfo SSDKSetupWeChatByAppId:@"微信开放平台申请的appKey" appSecret:@"XXXXXXX"];
                      break;
                  default:
                      break;
              }

          }];

    return YES;
}

到这里,基本已经大功告成了,只要我们轻轻的敲出:

[ShareSDK getUserInfo:type onStateChanged:^(SSDKResponseState state, SSDKUser *user, NSError *error) {
        _infoLabel.text = [NSString stringWithFormat:@"uid:%@\nnickName:%@\nheadImg:\n%@",user.uid,user.nickname,user.icon];
    }];

type是SSDKPlatformType,包含了各个平台,按需调起各个平台的授权登录。
运行了一下,没反应?好吧,我忘记了比较重要的一点,配置URL Schemes,见下图:
这里写图片描述
这次是真正搞定了,运行,成功调起平台,回调获取到信息,想干嘛就干嘛,嘿嘿~~~

点此下载demo

github上面下载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值