- PVSM.RU - https://www.pvsm.ru -
С помощью LinkedIn Company Lookup API [1] можно получить информацию о компании зарегистрированной на LinkedIn. Искать можно по ключевым словам, а можно и с помощью ID. Например, GET запрос
http://api.linkedin.com/v1/companies::(1337)
вернет информацию о самой компании LinkedIn. Весьма удобно, что через запятую можно указать сразу несколько ID, однако при этом стоит учитывать что слишком много ID указать в одном запросе также не получится из-за ограничения на размер самого запроса.
Также существуют органичения [2] на количество запросов в день, которые устанавливаются как для приложения так и для отдельного пользователя. В частности, для получения информации о компаниях лимиты следующие:
Таким образом, как видно на рисунке выше, LinkedIn не позволяет одному пользователю получить информацию о более чем 500 компаниях в течении одного дня. При этом важно отметить, что считается именно количество запрашиваемых компаний, а не запросов (как говорилось выше, в одном запросе может запрашиваться информация сразу о нескольких компаниях).
Для авторизации запросов LinkedIn использует oAuth, причем на данный момент поддерживаются обе версии: OAuth 2.0 [3], а также и более старая OAuth 1.0a [4]. В случае использования версии 1.0a кратко механизм можно описать так:
Таким образом шаги, описанные выше, необходимо проделать только один раз, а access_token должен храниться в надежном месте и использоваться для всех последующих вызовов методов API. В этом случае мы и столкнемся с тем, что используя одного пользователя не сможем получить более 500 компаний в день.
В реальности я попытался не получать access_token, а вызывать методы API используя request_token, сгенерированный на шаге 1 (шаг 2 в любом случае обязательный, иначе request_token будет непригоден). И в итоге я обнаружил, что методы API успешно работали и с request_token первые 5 минут (потом истекает его время жизни). Кроме того при таком способе не действовал лимит для пользователя, только лимит на 100 000 компаний в день для приложения. Однако тут на помощь приходит создание нескольких приложений. Очевидным минусом такого подходя является необходимость авторизации приложения каждые 5 минут. Но при должном уровне автоматизации и интеграции с браузером это не было большой проблемой. В итоге за пару дней неспешной работы простенького кода была скачана база с около 5 млн компаний хранящихся на LinkedIn.
Не стоит давать возможность вызывать методы API (кроме метода получения access_token) с помощью временного request_token. Это рекомендация прописана в секции 6 [5] OAuth 1.0а
P.S.: На текущий момент LinkedIn уже поправил ситуацию в соответствии с приведенной рекомендацией.
Автор: Ehuhaa
Источник [6]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/informatsionnaya-bezopasnost/59049
Ссылки в тексте:
[1] LinkedIn Company Lookup API: https://developer.linkedin.com/documents/company-lookup-api-and-fields
[2] органичения: https://developer.linkedin.com/documents/throttle-limits
[3] OAuth 2.0: http://oauth.net/2/
[4] OAuth 1.0a: http://oauth.net/core/1.0a/
[5] секции 6: http://oauth.net/core/1.0a/#auth_step1
[6] Источник: http://habrahabr.ru/post/219669/
Нажмите здесь для печати.