Я использую LinkedIn API v1
и увидел объявление:
Всем разработчикам необходимо перенести свои приложения на наши новейшие API и OAuth.
2.0 к 1 марта 2019 года.
Я реализовал новый поток Oauth2 (он в основном тот же, только изменил конечную точку и разрешение r_basicprofile
на r_liteprofile
), и он сработал и возвратил код, который я использую в получении токена доступа.
После того, как я получил токен доступа, я делаю один вызов, чтобы вернуть firstName
, lastName
и id
пользователя, и другой, чтобы получить email
(до этого был только 1 запрос, но это нормально) .
Здесь я увидел, что с помощью заголовка Authorization
он вернул ошибку, в которой говорилось, что я не сообщил токен доступа, но если я поставлю токен доступа в параметре oauth2_access_token
, я смогу успешно выполнять запросы.
В своих документах (https://docs.microsoft.com/en-us/linkedin/consumer/integrations/self-serve/sign-in-with-linkedin?context=linkedin/consumer/context) они не говорят, куда поместить токен доступа, а в документах потока Oauth2 (https://docs.microsoft.com/en-us/linkedin/shared/authentication/authorization-code-flow?context=linkedin/consumer/context) он использует заголовок Authorization
с API v1). Но, в любом случае, он работал с использованием параметра в URL.
В v1 я делаю:
После Oauth2 авторизация:
URL: https://api.linkedin.com/v1/people/~?oauth2_access_token={{accessToken}}&format=json
После авторизации с использованием Javascript SDK :
URL: https://api.linkedin.com/v1/people/~
Header: oauth_token={{accessToken}}
После авторизации с помощью Mobile SDK (Android) :
URL: https://api.linkedin.com/v1/people/~
Header: Authorization=Bearer {{accessToken}}
Header: x-li-src=msdk
Header: x-li-format=json
Это немного хаотично, потому что каждый из них выполняется по-разному, но я не смог заставить API v1
работать в общем случае для 3 описанных выше случаев. Тем не менее это сработало.
Но теперь, как получить пользовательские данные , используя v2 API ?
Пока я достиг этого только с Oauth2 Flow:
URL: https://api.linkedin.com/v2/me?projection=(...)&oauth2_access_token={{accessToken}}
(Из того, что я видел, что другие люди публиковали сообщения, они использовали заголовок Authorization
вместо параметра oauth2_access_token
, и я хотел использовать заголовок, но смог заставить его работать только с параметром. Если кто-то знаю, как заставить его работать с заголовком, я был бы признателен).
В любом случае, мой главный вопрос:
Как сделать миграцию с v1
на v2
и заставить ее работать так же, как сейчас с v1
? (используя токен, полученный от внешнего интерфейса, а также от мобильное приложение и извлекает пользовательскую информацию из этого токена в серверной части, как в 3 случаях, которые я опубликовал выше, с использованием API v1
, из которых мне удалось реализовать только 1-й, используя поток Oauth2).