2016-06-28 2 views
0

Фактически я использую OAuth 2.0. и используемый класс afnetworking, отображаемый на странице входа в Linkedin, используя 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]; 

} 

Используя этот метод, я получаю токен доступа, теперь мой вопрос: как получить данные пользователя, такие как профиль pic и все базовые данные. есть ли какое-либо решение, подобное facebook, просто добавьте accesstoken, и вы получите данные JSON. Даже я не хочу использовать SDK linkedin, хочу прямого общения, поэтому, пожалуйста, помогите. Спасибо

+0

Что говорит официальный LinkedIn документации? – Ollie

ответ

1

Вот URL я использую, чтобы получить всю возможную информации от пользователя LinkedIn (без партнерства с 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 это один вы просто получите сразу после аутентификации.

Просто сделайте GET запрос с AFNetworking по этому адресу, и вы получите, как вы сказали, в 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"; 
      } 
     ); 
    }; 
} 
+0

Большое вам спасибо –

Смежные вопросы