【问题标题】:issue regarding getting user data in linkedin关于在linkedin中获取用户数据的问题
【发布时间】:2016-06-28 08:57:59
【问题描述】:

实际上我使用的是 OAuth 2.0。并使用afnetworking类,通过使用webview提供url作为客户端密钥及其授权端点、响应类型和状态来显示Linkedin登录页面。一切正常

-(void)requestforAccessToken:(NSString *)authorisationCode
{
    NSString *grantType = @"authorization_code";

    NSString *postParameter = [NSString stringWithFormat:@"grant_type=%@&code=%@&redirect_uri=%@&client_id=%@&client_secret=%@",grantType,authorisationCode,encodedRdirectURL,linkedInKey,linkedInSecret];

    NSData *postdata = [postParameter dataUsingEncoding:NSUTF8StringEncoding];

    NSMutableURLRequest *request = [[NSMutableURLRequest alloc]initWithURL:[NSURL URLWithString:accessTokenEndPoint]];

    request.HTTPMethod = @"POST";
    request.HTTPBody = postdata;
    [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];


    AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];


    manager.responseSerializer = [AFJSONResponseSerializer
        serializerWithReadingOptions:NSJSONReadingAllowFragments];


    [[manager dataTaskWithRequest:request completionHandler:^(NSURLResponse  * response, id  responseObject, NSError * error )
      {
          if (!error)
          {
              NSLog(@"Reply JSON: %@", responseObject);

              NSString *accessToken = [responseObject objectForKey:@"access_token"];

              NSLog(@"Access Token %@",accessToken);


              NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

              [defaults setObject:accessToken forKey:@"linkedInAccessToken"];

              [defaults synchronize];
          }

      }] resume];

}

通过使用这种方法,我现在获得了访问令牌,我的问题是如何获取用户数据,如个人资料图片和所有基本数据。有没有像 facebook 这样的解决方案,只需附加 accesstoken,你就会得到 JSON 数据。即使我不想使用linkedin的SDK,想要直接通信所以请帮忙。谢谢你

【问题讨论】:

  • LinkedIn 官方文档是怎么说的?

标签: ios objective-c linkedin


【解决方案1】:

这是我用来从 LinkedIn 用户那里获取所有可能信息的 URL(与 LinkedIn 没有合作关系):

[NSString stringWithFormat:@"https://api.linkedin.com/v1/people/~:(first-name,last-name,id,industry,location,headline,specialties,current-share,summary,picture-url,email-address,positions)?oauth2_access_token=%@&format=json", accessToken]

accessToken 是您在验证后立即获得的那个。

只需在此 URL 上使用 AFNetworking 发出 GET 请求,您就会收到如您所说的 JSON 回复,如下所示:

{
    emailAddress = "****@gmail.com";
    firstName = Pi***e;
    headline = "Developpeur iOS chez Pi****e";
    id = 6Z***bFH3;
    industry = "Computer Software";
    lastName = "Test Account";
    location =     {
        country =         {
            code = fr;
        };
        name = "Paris Area, France";
    };
    pictureUrl = "https://media.licdn.com/mpr/mprx/0_Gs*****U-9SswsbZKo3J*********eyCoHgYQadNFGRWQDyCwHjBVSdN4dVyw6gBFGIuQ3ZGnWmtsSdZUTjhIXErcmklEA7X";
    positions =     {
        "_total" = 1;
        values =         (
                        {
                company =                 {
                    name = Pi****e;
                };
                id = 823***52;
                isCurrent = 1;
                location = {
                };
                title = "Developpeur iOS";
            }
        );
    };
}

【讨论】:

    猜你喜欢
    • 2016-02-24
    • 2015-10-26
    • 2023-01-25
    • 1970-01-01
    • 2022-06-29
    • 2011-04-09
    • 2022-06-10
    • 2012-07-18
    • 1970-01-01
    相关资源
    最近更新 更多