iOS LinkedIn登录及信息获取

最近段时间做了一下在iOS上使用LinkedIn登录并获取用户数据的预研工作,有些结论记录在这里:

  1. LinkedIn在2015年7月1日的时候,终于推出了自家的SDK,大家可以去他们家的开发者网站下载,这个东西我只看了一下文档,就放弃了,使用这个SDK必须要求用户必须安装了LinkedIn客户端,这对于我们的应用来说是无法接受的,直接就放弃了,希望LinkedIn以后能升级SDK,不要整这么恶心。
  2. 由于SDK的路堵死了,只好调用REST API通过OAuth 2.0协议进行登录和信息获取。

在Github上找到两个不错的开源项目

  1. IOSLinkedInAPI,这是一个比较老的库了,去年的时候就使用过,不过这次拿来用的时候用不了,而且接口并不友好,所以放弃了。
  2. LinkedinIOSHelper, 这是一个非常新的库,虽然目前为止并不是很火,但接口很友好,下载下来就可以用了,所以最后采取了这个。

首先,需要在LinkedIn创建一个应用,地址:https://www.linkedin.com/developer/apps
然后,对应用进行相关设置,其中比较重要的是应用预设权限,如果没特殊的想法,全部选中就好了,

Note: 前段时间LinkedIn对开发者的应用权限进行了调整,目前只有这几个权限了。我的应用其实去年就在LinkedIn上创建了,这次去设置的时候,本来还有不少的,比如r_fullprofile, r_contactinfo这些,而且是勾选中的,因为我之前创建的时候就把这些权限勾中了,当时完全没有问题,这次已经拿不到这些数据了,在去掉这些勾中状态之后,刷新页面就找不到这些权限了,原因是LInkedIn的权限调整,要求成为他们的partner才有这些权限,anyway,先用这些权限用着。

接着,把OAuth2.0的重定向网址填好,以及一些其他的必须填写的信息都挨个填好就行了。

运行Github上下载下来的LinkedinIOSHelper的demo,记得修改ViewController.m里面的设置。


NSArray *permissions = @[@(BasicProfile),  
                         @(EmailAddress),  
                         @(Share),  
                         @(CompanyAdmin)];  

以上是LinkedIn登录的时候需要获取的权限,这里的对应关系在LinkedInAppSettings.m这个文件中:


if ([permissions containsObject:@(ContactInfo)])    [self.permissions addObject:@"r_contactinfo"];  
if ([permissions containsObject:@(FullProfile)])    [self.permissions addObject:@"r_fullprofile"];  
if (![permissions containsObject:@(FullProfile)] &&  
    [permissions containsObject:@(BasicProfile)])   [self.permissions addObject:@"r_basicprofile"];  
if ([permissions containsObject:@(Nus)])            [self.permissions addObject:@"rw_nus"];  
if ([permissions containsObject:@(Network)])        [self.permissions addObject:@"r_network"];  
if ([permissions containsObject:@(EmailAddress)])   [self.permissions addObject:@"r_emailaddress"];  
if ([permissions containsObject:@(Share)])          [self.permissions addObject:@"w_share"];  
if ([permissions containsObject:@(CompanyAdmin)])   [self.permissions addObject:@"rw_company_admin"];  
if ([permissions containsObject:@(Groups)])         [self.permissions addObject:@"rw_groups"];  
if ([permissions containsObject:@(Messages)])       [self.permissions addObject:@"w_messages"];  

从上可以看出这个库定义的权限和LinkedIn定义的权限的对应关系,在这里配置你在LinkedIn中勾选中的权限就好了。

接着是配置应用的相关key:


#warning - Your LinkedIn App ClientId - ClientSecret - RedirectUrl - And state  
          
        [linkedIn requestMeWithSenderViewController:self  
                                           clientId:@""  
                                       clientSecret:@""  
                                        redirectUrl:@""  
                                        permissions:permissions  
                                              state:@""  
                                    successUserInfo:^(NSDictionary *userInfo) {  
                                          
                                        self.btnLogout.hidden = !linkedIn.isValidToken;  
                                          
                                        NSString * desc = [NSString stringWithFormat:@"first name : %@\n last name : %@",  
                                                           userInfo[@"firstName"], userInfo[@"lastName"] ];  
                                        [self showAlert:desc];  
  
                                        // Whole User Info  
                                        NSLog(@"user Info : %@", userInfo);  
                                        // You can also fetch user's those informations like below  
                                        NSLog(@"job title : %@",     [LinkedInHelper sharedInstance].title);  
                                        NSLog(@"company Name : %@",  [LinkedInHelper sharedInstance].companyName);  
                                        NSLog(@"email address : %@", [LinkedInHelper sharedInstance].emailAddress);  
                                        NSLog(@"Photo Url : %@",     [LinkedInHelper sharedInstance].photo);  
                                        NSLog(@"Industry : %@",      [LinkedInHelper sharedInstance].industry);  
                                    }  
                                  failUserInfoBlock:^(NSError *error) {  
                                      NSLog(@"error : %@", error.userInfo.description);  
                                      self.btnLogout.hidden = !linkedIn.isValidToken;   
                                  }  
         ];  

依次填好客户端编号,客户端密码,重定向URL,运行demo,大功告成了。

由于不是partner,所以最多只有这些权限。登录之后,可以获取用户数据,包括名字,头像,地理位置,邮箱,从事行业,职位,公司名字这些信息,更多的类似于工作经历,教育经历这些内容需要申请成为partner才行了。成为partner后的权限,后面拿到权限的时候再来补上。

其实只是把一个库的使用总结了一下而已,以上!

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

推荐阅读更多精彩内容