Используйте пост-запрос для получения информации профиля пользователя LinkedIn в iOS

Я ищу способ получить информацию о профиле пользователя LinkedIn, отправив запрос на публикацию, я прочитал эти две страницы LinkedIn, но, похоже, это мало что объясняет, или я не мог понять многое из этого:

REST API LinkedIn Основная информация профиля

Я видел этот пример на stackru, но я мало что понял:

http://api.linkedin.com/v1/people/~:(id,first-name,last-name,maiden-name,email-address,formatted-name,phonetic-last-name,location:(country:(code)),industry,distance,current-status,current-share,network,skills,phone-numbers,date-of-birth,main-address,positions:(title),educations:(school-name,field-of-study,start-date,end-date,degree,activities)) 

Мне интересен только тот раздел навыков, который на сайте выглядит так:

4 ответа

Используйте инструмент: https://apigee.com/console/linkedin

API для получения списка навыков: https://api.linkedin.com/v1/people/~:(id,num-connections,skills)?format=json

Я попробовал это в инструменте Консоль и смог получить навыки для своего профиля. Я думаю, что индивидуальный идентификатор навыка, указанный выше, должен помочь вам получить дополнительную информацию. Попробуйте это.

Если кто-то читает этот ответ, API LinkedIn имеет ограниченный доступ по состоянию на май 2015 года. Вам нужно будет подать заявку на участие в программе "Применить с LinkedIn", чтобы получить доступ к полям всего профиля, включая навыки.

https://developer.linkedin.com/docs/fields

Есть великолепная библиотека для интеграции LinkedIn-iOS от Kirsten Jones, которую вы можете использовать для вызова API-интерфейса LinkedIn. Вам нужен токен доступа для звонков.

https://github.com/PrincessPolymath/LinkedIn-OAuth-Sample-Client

Звоните вот так:

NSURL *url = [NSURL URLWithString:@"http://api.linkedin.com/v1/people/~:(id,first-name,last-name,maiden-name,formatted-name,phonetic-last-name,location:(country:(code)),industry,distance,current-status,current-share,network,skills,phone-numbers,date-of-birth,main-address,positions:(title),educations:(school-name,field-of-study,start-date,end-date,degree,activities))"]];
    OAMutableURLRequest *request = 
    [[OAMutableURLRequest alloc] initWithURL:url
                                    consumer:oAuthLoginView.consumer
                                       token:oAuthLoginView.accessToken
                                    callback:nil
                           signatureProvider:nil];

    [request setValue:@"json" forHTTPHeaderField:@"x-li-format"];

    OADataFetcher *fetcher = [[OADataFetcher alloc] init];
    [fetcher fetchDataWithRequest:request
                         delegate:self
                didFinishSelector:@selector(profileApiCallResult:didFinish:)
                  didFailSelector:@selector(profileApiCallResult:didFail:)];    

- (void)profileApiCallResult:(OAServiceTicket *)ticket didFinish:(NSData *)data 
{
    NSString *responseBody = [[NSString alloc] initWithData:data
                                                   encoding:NSUTF8StringEncoding];

    NSDictionary *profile = [responseBody objectFromJSONString];

    if ( profile )
    {
        name.text = [[NSString alloc] initWithFormat:@"%@ %@",
                     [profile objectForKey:@"firstName"], [profile objectForKey:@"lastName"]];
        headline.text = [profile objectForKey:@"headline"];

        .....and get skills and other user details

     }    
}

У меня достаточно опыта работы с API-интерфейсом LinkIn. Прошло немного времени, но, надеюсь, это укажет вам правильный путь.

Чтобы получить информацию о профиле от связанного пользователя, который является одним из ваших подключений, вам нужен следующий формат:

NSString *theRequest = [NSString stringWithFormat:@"https://api.linkedin.com/v1/people/id=abc123:(first-name,last-name,picture-url,location:(name))?oauth2_access_token=%@&format=json", accessToken];

Этот запрос вернет имя, фамилию, URL-адрес изображения профиля и местоположение пользователя с указанным идентификатором.

Вы можете увидеть список типов полей, которые вы можете запросить, ознакомившись с документацией по LinkIn, описав их поля профиля: https://developer.linkedin.com/docs/fields

Если вам интересно, как получить идентификатор пользователя, чью информацию о профиле вы хотите запросить, в первую очередь, вы можете запросить некоторую базовую информацию (включая идентификаторы) всех ваших соединений, например:

NSString *basicConnectionInfo = [NSString stringWithFormat:@"https://api.linkedin.com/v1/people/~/connections:(id,first-name,last-name)?oauth2_access_token=%@&format=json", accessToken];

Этот запрос даст вам идентификатор, имя и фамилию всех ваших подключений. После того как вы получили идентификатор нужного вам человека, вы можете сделать запрос, используя идентификатор пользователя (как показано в первом примере).

Теперь для немного к сожалению новостей... Если вы пошли по ссылке, приведенной выше, вы заметите, что поле навыков является частью "полей профиля участника, доступных для применения с разработчиками LinkedIn". Я предполагаю, что вам нужно будет перейти по этой ссылке, которую они предоставили: https://developer.linkedin.com/docs/apply-with-linkedin, чтобы получить доступ к полю профиля участника навыков.

Я не обращался с LinkedIn. Итак, я не проверял вызов в поле навыков. Но, думаю, это будет похоже на примеры, которые я вам показал. Надеюсь это поможет!

Другие вопросы по тегам