Используйте пост-запрос для получения информации профиля пользователя 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", чтобы получить доступ к полям всего профиля, включая навыки.
Есть великолепная библиотека для интеграции 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. Итак, я не проверял вызов в поле навыков. Но, думаю, это будет похоже на примеры, которые я вам показал. Надеюсь это поможет!