前言:
第三方登录是做开始时经常用到的,方法有两种:第一种是对各个平台进行注册,按照官方文档走一遍,第二种则是通过第三方的管理平台进行集成。我用过友盟,ShareSDK等。感觉还是ShareSDK比较好用,而且服务还比较友善,下面重点介绍一下ShareSDK的集成及遇到的一些坑。具体请看:http://wiki.mob.com/ios%e7%ae%80%e6%b4%81%e7%89%88%e5%bf%ab%e9%80%9f%e9%9b%86%e6%88%90/
步骤:
1、首先需要注册ShareSDK获取AppKey,,地址:http://dashboard.mob.com/#/share/index
2、下载SDK:http://www.mob.com/downloadDetail/ShareSDK/ios
3、添加依赖库 如图所示:

依赖库.png
4、在AppDelegate.m中引入相应的头文件,如图所示:

头文件.png
5、在- (BOOL)application:(UIApplication)application didFinishLaunchingWithOptions:(NSDictionary)launchOptions {}写如下代码:


6、配置信息
(1)需要在info.plist文件中添加白名单,不然的话授权回调页回调不成功,在项目的info.plist中添加一LSApplicationQueriesSchemes,类型为Array 添加如下

白名单.png
(2)在info.plist文件中添加

网络请求.png
(3)新浪微博要在Build Setting-Linking-Other Linker Flags中添加-ObjC,不然的话会报错。
(4)qq 微信 微博配置信息

配置信息.png
1>
a、qq是需要在URL Schemes中添加2个,一个是tencent+QQ的AppId,
b、另一个是转换成十六进制的,转换成16进制的方法:echo 'ibase=10;obase=16;1105506645'|bc,其中1105506645是QQ的AppId。如下图所示:
c、把41E4B155复制到URL Schemes中 QQ41E4B155不足八位的前面补0

转换成十六进制的方法.png
2>微信在URL Schemes添加微信的AppID
3>新浪微博在URL Schemes添加wb+App Key
7、分别在QQ 微信 微博的点击事件中添加获取用户信息的授权方法
基于ShareSDK判断是否安装了应用:
#import <ShareSDK/ShareSDK.h>
#import "WXApi.h"
#import <TencentOpenAPI/QQApi.h>
if ([WXApi isWXAppInstalled]) {
//判断是否有微信
}
if ([QQApi isQQInstalled]) {
//判断是否有qq
}
if ([WeiboSDK isWeiboAppInstalled]) {
NSLog(@"安装了微博");
}
基于系统的来判断:
if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"Sinaweibo://"]]) {//新浪微博 }
if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"Whatapp://"]]) { //微信 }
if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"weixin://"]]) { //微信}
if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"Facebook://"]]) { //facebook}
if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"Twitter://"]]) { //推特}
各个平台的注册网址:
1、微信:https://open.weixin.qq.com
2、QQ: http://open.qq.com