集成第友盟三方登录

准备工作:第三方账号申请和绑定 http://dev.umeng.com/social/ios/operation
1.集成与配置1.1集成。(可参考http://dev.umeng.com/social/ios/quick-integration#1)这一步友盟的集成文档也写得很清楚,可以通过下载SDK手动集成,也可以cocoapods集成。
1.2.配置SSO白名单、URL Scheme(地址协议)(参考http://dev.umeng.com/social/ios/quick-integration#1_3).

SSO白名单

image.png

如果不添加跳转目的APP白名单,会出现下面错误

-canOpenURL: failed for URL: "weixin://app/wx9**********dfd30/" - error: "This app is not allowed to query for scheme weixin"

什么是URL Schemes?URL Schemes是苹果给出的用来跳转到系统应用或者跳转到别人的应用的一种机制。同时还可以在应用之间传数据。通过对比网页链接来理解 iOS 上的 URL Schemes,应该就容易多了。URL Schemes 有两个单词:URL,我们都很清楚,http://www.apple.com就是个 URL,我们也叫它链接或网址;Schemes,表示的是一个 URL 中的一个位置——最初始的位置,即 ://之前的那段字符。比如 http://www.apple.com这个网址的 Schemes是 http。根据我们上面对 URL Schemes 的使用,我们可以很轻易地理解,在以本地应用为主的 iOS 上,我们可以像定位一个网页一样,用一种特殊的 URL 来定位一个应用甚至应用里某个具体的功能。而定位这个应用的,就应该是这个应用的 URL 的 Schemes 部分,也就是开头儿那部分。

2.初始化设置
2.1初始化U-Share及第三方平台
根据自己的项目需求初始化相对应的平台,QQ、微博、微信三个也是最常用的。
可以参考我司大神的一些习惯

image.png

将相应的初始化工作写在分类里 然后再在AppDelegate.m里调用

#import "AppDelegate.h" 
@interface AppDelegate (UMeng) 
- (void)umeng_application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions; 
- (BOOL)umeng_application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation; 
@end
#import "AppDelegate+UMeng.h" 
//登录
 #import <UMSocialCore/UMSocialCore.h> 
@implementation AppDelegate (UMeng) 
- (void)umeng_application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
//登录
 [[UMSocialManager defaultManager] setUmSocialAppkey:kUmengAppKey]; 
[[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_WechatSession appKey:kWechatAppId appSecret:kWechatAppSecret redirectURL:kUMengShareUrl];
 [[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_QQ appKey:kQQAppId appSecret:nil redirectURL:kUMengShareUrl]; 
[[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_Sina appKey:KSinaAppKey appSecret:kSinaAppSecret redirectURL:kSinaCallbackUrl]; } 
- (BOOL)umeng_application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
 return [[UMSocialManager defaultManager] handleOpenURL:url sourceApplication:sourceApplication annotation:annotation];
 }

然后可以在AppDelegate.m文件里调用、这样的做法能够减少AppDelegate.m文件沉冗。而且,如果项目中接入多个第三方SDK、这样也能够更加清晰的管理每个第三方SDK.

image.png

在调用登录前、先说下目前项目第三方登录的流程。
①:向第三方发起请求获取公开信息,头像、名字。还有token等等。
②:拿到第三方服务器成功返回相应数据。
③:将拿到的第三方数据作为参数、与自己的服务器进行通信,把数据传给后台处理。(一般我们不需要知道后台怎么处理第三方得来的数据,只需要知道后台返回什么数据给我们,我们本地做哪些处理就可以。一般后台会判断,如果是第一次登录,会将用户插入数据库并返回数据,如果不是则直接查询数据库相匹配的数据并返回数据。)
④:后台成功返回数据后、将相应个人信息或登录状态等信息储存在本地,以便其他页面做一些登陆后的相关操作。

登陆后可以用已储存的个人信息或登录状态为依据来判断是否已登录。而退出登录只需要将储存的个人信息或登录状态移除即可。

3.调用登录

//友盟集成登录 
- (void)umengLoginWithThridLoginType:(ICDThridLoginType)thirdLoginType controller:(UIViewController *)controller completion:(LoginCompletionBlock)completion { 
    UMSocialPlatformType umPlatformType = [self umPlatformTypeWithThridLoginType:thirdLoginType]; 
   __weak typeof(self) weakSelf = self; 
   [[UMSocialManager defaultManager] getUserInfoWithPlatform:umPlatformType currentViewController:controller completion:^(id result, NSError *error) {
       if (!error) { 
        UMSocialUserInfoResponse *resp = result; 
        ICDLoginAPIParam *param = [[ICDLoginAPIParam alloc] init];
     if (thirdLoginType == ICDThridLoginTypeWeibo) {
        param.openid = resp.usid; 
     } else {
        param.openid = resp.openid;
     } 
        param.accessToken = resp.accessToken; 
        param.fromApp = thirdLoginType; 
        param.nickname = resp.name; 
        param.avatarUrl = resp.iconurl;
        param.gender = [weakSelf icdGenderWithUMGender:resp.unionGender]; param.wxUnionId = resp.unionId; 
        //与公司服务器进行通信,将公司返回的数据进行处理并显示出来。 
        [weakSelf icdLoginWithParam:param completion:completion]; 
      } else { 
    // //登录时的错误判断与处理 // if (completion) { 
// completion(NO,nil,error);
 // }
 } 
}];

第三方登录时出现的小问题

1. iOS-OC-新浪微博登录报错redirect_uri_mismatch

原因是新浪开发平台新建APP后,没有修改回调url,回调url要和APP中设置的回调url一致;

链接:http://blog.csdn.net/u014220518/article/details/52291137

2. 新浪微博 sso package or sign error 原因---iOS

新浪sso授权报错sso package or sign error
新浪微博开放平台应用没有审核通过,不能用sso登陆,否则报错,关闭sso登陆
原因:可能是由于您在新浪微博开发者平台上,注册的app所使用的Bundle ID和现在程序中运行的Bundle ID 不一致所导致的
解决: 可以修改新浪开发者平台上,填写的Bundle ID 或者是修改目前运行程序的bundle ID

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,524评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,869评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,813评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,210评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,085评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,117评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,533评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,219评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,487评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,582评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,362评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,218评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,589评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,899评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,176评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,503评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,707评论 2 335

推荐阅读更多精彩内容

  • 之前一直想把第三方登录总结下,一直没有比较合适的时机。最近的项目正好把登录注册等页面进行了调整,我又重新整理了项目...
    HEALTHYbaby阅读 306评论 1 1
  • 前言 友盟能实现分享功能,友盟+申请第三方账号的目的: 进行分享、授权操作需要在第三方平台创建应用并提交审核,友盟...
    CoderZb阅读 9,693评论 8 60
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 11,945评论 4 60
  • 最近公司在大力招人,结果今天我们部门来了一个帅小伙,很文静的样子,坐在那里都不说话的,要他介绍都是直接说了名字就没...
    宅小阳阅读 1,185评论 2 1
  • 今日来国内外发生不少大事。起初是乒乓球队那一事件,多少人愤愤不平,难以猜透这项决策的意义,多少人摇头叹惋,为队伍...
    庭有橡子树阅读 243评论 0 0