недавно linkedin отправил электронное письмо с напоминанием:
Важное обновление: Всем разработчикам необходимо перейти на версию 2.0 наших API и OAuth 2.0 к 1 марта 2019 года.подробнее
Я использую Linkedin Rest API для получения информации о пользователе после авторизации.Старый API v1 был: https://api.linkedin.com/v1/people/~
Глядя на руководство по миграции, найденное здесь: https://docs.microsoft.com/en-us/linkedin/consumer/integrations/self-serve/migration-faq?context=linkedin/consumer/context
этот запрос необходимо изменить.Я попытался сделать следующие запросы:
https://api.linkedin.com/v2/me
, чтобы получить основную информацию пользователя (как имя и фамилия)
, а затем:
https://api.linkedin.com/v2/emailAddress?q=members&projection=(elements*(handle~))
, чтобы получить адрес электронной почты пользователя
К сожалению, первый запрос всегда возвращает:
{
"serviceErrorCode": 100,
"message": "Not enough permissions to access: GET /me",
"status": 403
}
Я много раз искал здесь на stackoverflow и многие предполагают, что вынужно подписаться как партнер, чтобы получить доступ к v2 api
здесь: https://business.linkedin.com/marketing-solutions/marketing-partners/become-a-partner/marketing-developer-program
Linkedin в руководстве по миграции говорит:
Мой разработчику приложения есть доступ к API v2? Любое приложение для разработчиков, созданное через Портал разработчиков LinkedIn после 15 декабря 2018 года, автоматически имеет доступ к API v2.
А как насчет существующих приложений для разработчиков? Если ваше приложение для разработчиков отправило успешный запрос API v1 с 1 октября 2018 года, ваше приложение разработчика автоматически получит доступ к API v2.
и далее, если я запрашиваю API emailAddress v2, Я получаю правильный ответ ... так что я не думаю, что мне нужно составить форму, чтобы стать партнером.
В чем проблема?
Здесь полный путь дляпроверка подлинности и вызовы API:
1) Перейти на страницу авторизации для запроса разрешений
window.location.href = "https://www.linkedin.com/oauth/v2/authorization?response_type=code" +
"&client_id=" + linkedin_id + "&redirect_uri=" + redirect_uri +
"&state=" + state + "&scope=r_basicprofile+r_emailaddress"
2) Получить токен доступа
request = ("https://www.linkedin.com/oauth/v2/accessToken?grant_type=authorization_code&code=" +
code + "&redirect_uri=" +
redirect_uri + "&client_id="
+ linkedin_id +
"&client_secret=" + linkedin_secret)
response = requests.get(request)
3) Токен доступаПолучено, мы можем запросить информацию о пользователе ВСЕГДА 403
headers = {"Authorization": "Bearer "+token }
get_user = requests.get('https://api.linkedin.com/v2/me', headers=headers)
4) Получить user_email работает
get_user_email = requests.get('https://api.linkedin.com/v2/emailAddress?q=members&projection=(elements*(handle~))', headers=headers)
Спасибо