标签:
第一步注册获取AppKey,就是所谓的唯一标识
注册的步骤:
官网注册应用得到appkey,请点击链接看里面的操作步骤。
第二步下载SDK:
第三步集成SDK
在Build Phases中的Link Binary With Libraries中添加对应的framework
如果添加时候找不到,那么就需要点击add other按钮进行添加
{
进入时候会出现一个finder的界面,然后点击command+shift+G就见到上边一一串地址
然后把这串地址改为/usr/lib就可以在里面见到你需要的特殊framework,然后添加
}
必须添加的依赖库如下(Xcode 7 下 *.dylib库后缀名更改为*.tbd):
- libicucore.dylib
- libz.dylib
- libstdc++.dylib
- JavaScriptCore.framework
以下依赖库根据社交平台添加:
新浪微博SDK依赖库
- ImageIO.framework
- libsqlite3.dylib
第四步:
因为iOS9苹果需要将http要改为https的,因为苹果想应用更加安全
所以我们需要在Info.plist中添加
{
App Transport Security Settings类型为字典
然后再在这个字典中添加Allow Arbitrary Loads类型为Boolean 把Value改为YES
然后就可以咯
}
然后再次运行时候就不会报错咯
OK现在我们来实现登陆:
第一、我们先告诉shares平台我们的appkey、想要跳转的平台、告诉想要跳转平台你的软件在这个想跳转平台中的appid和appkey和授权方式
这样我们就完成咯一大步骤授权:
第二、我们需要匹配URL Types
举例QQ:QQ+你QQ号码16进制, tencent+你的QQ号码
第三、
配置白名单:
各平台OpenURL白名单说明
|
新浪微博
|
- sinaweibo,
- sinaweibohd,
- sinaweibosso,
- sinaweibohdsso,
- weibosdk,
- weibosdk2.5
- [后两个若导入新浪SDK则需要]
|
腾讯微博
|
- TencentWeibo,
- tencentweiboSdkv2
- [控制台会提示这两个,但是腾讯微博SDK已经弃用,可以忽略不配置]
|
豆瓣
|
|
开心网
|
|
微信
|
|
易信
|
|
支付宝
|
|
QQ
|
- mqqOpensdkSSoLogin,
- mqqopensdkapiV2,
- mqqopensdkapiV3,
- wtloginmqq2,
- mqq,
- mqqapi
|
QZONE
|
- mqzoneopensdk,
- mqzoneopensdkapi,
- mqzoneopensdkapi19,
- mqzoneopensdkapiV2,
- mqqOpensdkSSoLogin,
- mqqopensdkapiV2,
- mqqopensdkapiV3,
- wtloginmqq2,
- mqqapi,
- mqqwpa,
- mqzone,
- mqq
[注:若同时使用QQ和QZONE,则直接添加本格即可]
|
Google+
|
- googlechrome,
- googlechrome-x-callback,
- hasgplus4,
- com.google.gppconsent,
- com.google.gppconsent.2.2.0,
- com.google.gppconsent.2.3.0,
- com.google.gppconsent.2.4.0,
- com.google.gppconsent.2.4.1
|
人人网
|
- renrenapi,
- renrenios,
- renreniphone,
- renren,
- 以及在使用人人SDK时所需配置的URL Scheme,例如:rm226427com.mob.demoShareSDK
|
Facebook
|
|
Twitter
|
|
Pocket
|
|
Pinterest
|
|
Instagram
|
|
WhatsApp
|
|
Line
|
|
KakaoTalk
|
|
KaokaoStory
|
|
LinkedIn
|
|
Tumblr
|
|
非平台类,如短信,复制,邮件等
|
|
这样就可以是实现你想要的效果咯
以下就是第三方登陆的代码与自己的实现
registerApp:你在平台上的appkey,平台会通过这个key辨别你是否可以授权
activePlatforms:告诉平台你要跳转到那个界面 例如:SSDKPlatformTypeQQ跳到QQ授权
platformType:你要告诉QQ平台你这个软件是否可以在QQ中授权,然后QQ就是通过SSDKSetupQQByAppId:唯一标识去查看是否可以授权
authType:授权状态
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[ShareSDK registerApp:@“c5”
activePlatforms:@[@(SSDKPlatformTypeQQ),@(SSDKPlatformTypeWechat),@(SSDKPlatformTypeSinaWeibo)]
onImport:^(SSDKPlatformType platformType)
{
switch (platformType)
{
case SSDKPlatformTypeQQ:
[ShareSDKConnector connectQQ:[QQApiInterface class] tencentOAuthClass:[TencentOAuth class]];
break;
case SSDKPlatformTypeWechat:
[ShareSDKConnector connectWeChat:[WXApi class] delegate:self];
break;
case SSDKPlatformTypeSinaWeibo:
[ShareSDKConnector connectWeibo:[WeiboSDK class]];
break;
default:
break;
}
}
onConfiguration:^(SSDKPlatformType platformType, NSMutableDictionary *appInfo)
{
switch (platformType)
{
case SSDKPlatformTypeQQ:
[appInfo SSDKSetupQQByAppId:@"1"
appKey:@"8TbGd1"
authType:SSDKAuthTypeBoth];
break;
case SSDKPlatformTypeWechat:
[appInfo SSDKSetupWeChatByAppId:@"wxfd343f"
appSecret:@"d4647af5443d"];
break;
case SSDKPlatformTypeSinaWeibo:
[appInfo SSDKSetupSinaWeiboByAppKey:@"2596272"
appSecret:@"366d6b89e51bfa13"
redirectUri:
@"http:”// 回调地址
authType:SSDKAuthTypeBoth];
break;
default:
break;
}
}];
return YES;
}
点击的操作
三个登陆的点击事件处理是一样的,传的平台不一样就可以咯getUserInfo:SSDKPlatformTypeSinaWeibo这个
- (void)weiBoButtonClick
{
[ShareSDK getUserInfo:SSDKPlatformTypeSinaWeibo
onStateChanged:^(SSDKResponseState state, SSDKUser *user, NSError *error)
{
if (state == SSDKResponseStateSuccess)// 成功就会获取到平台的个人资料
{
NSLog(@"uid=%@",user.uid);
NSLog(@"%@",user.credential);
NSLog(@"token=%@",user.credential.token);
NSLog(@"nickname=%@",user.nickname);
YiQiGanDianShaViewController *ganDianShaViewController = [[YiQiGanDianShaViewController alloc] init];
[self presentViewController:ganDianShaViewController animated:YES completion:nil];
}
else
{
NSLog(@"%@",error);
}
}];
}
使用Shares实现第三方登陆
标签:
原文地址:http://www.cnblogs.com/happyEveryData/p/5531860.html