Sign In

링크드인 API 발급 과정

링크드인 가입 & 로그인 하기.
https://developer.linkedin.com/ 방문 후 Create app.
App Name, LinkedIn Page, App logo를 필수적으로 입력 및 등록을 해야합니다.
page가 없으시다면 https://www.linkedin.com/company/setup/new 에서 새롭게 만들 수 있습니다.
회사, 브랜드 페이지 등을 선택할 수 있는데 저는 회사로 만들었습니다.

앱 페이지 설명

My apps에서 만들어진 앱을 확인할 수 있습니다.

Setting Tab

연결된 페이지를 Verified를 진행해주세요.

Auth Tab

Application credentials : Client ID, Client Secret 키 값을 메모장에 잘 저장해둡니다.
OAuth 2.0 settings
별도 Token을 발급 받아야 합니다. 토큰의 유효기간은 2달 가량 주어집니다. (5184000 seconds = 8 weeks 4days)
Authorized redirect URLs에는 아래 URL이 추가되어 있는지 확인.
https://datapopcorn.win/rest/oauth2-credential/callback
https://www.linkedin.com/developers/tools/oauth/redirect
OAuth 2.0 scopes (앱이 사용자를 대신하여 수행할 수 있는 작업을 정의합니다)
openid : 이름과 사진 사용
profile : 이름과 사진 사용
w_member_social : 사용자를 대신하여 게시물, 댓글 및 반응 생성, 수정 및 삭제
email : LinkedIn 계정과 연결된 기본 이메일 주소 사용

Products Tab

App type: Standalone app 입니다. 아래 두가지 Products의 Request Access를 진행하세요.
Share on LinkedIn (scope : openId)
/v2/userinfo
Sign In with LinkedIn using OpenID Connect (scope : w_member_social)
/v2/aseets
/v2/posts
/v2/reactions
/v2/shares

Analytics Tab

API 사용량을 체크합니다

Team members

앱 관리자를 관리합니다.

Create OAuth 2.0 access token

OAuth Token Tools에서 Access Token 발급받기.
모든 scope를 체크합니다.
Inspect OAuth 2.0 access token 에서 앞서 생성한 토큰의 유효성을 체크할 수 있습니다.
Status을 통해 현재 이 토큰은 유효한 것으로 확인됩니다.
curl --location --request POST 'https://www.linkedin.com/oauth/v2/introspectToken' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --data-urlencode 'token=<YOUR TOKEN>' \ --data-urlencode 'client_id=<>' \ --data-urlencode 'client_secret=<>' curl --location --request POST 'https://www.linkedin.com/oauth/v2/introspectToken' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --data-urlencode 'token=AQUlOLvYRLpibQmgCrAApwhOSIHMJQPuMSrBvxT15t8eQuLWfAb64tllCMOoMRLT2My9O64wOHDjUS-7Q0sahveNEfEyF5_h4saXNCKaP5FJJlXInD2wva36wLLZVq2WHCb5ATkTlJtFfv-6tLAqvqUE4D-DroqgI4aPvdg-_qRISSvrPMR9vVXSLjOLVk5mVXAuL1ceCkH9b9qcy37T0pqD9RvEra8irwMzE822GucOZptggh-UsaV3eCBp3hLafF5oIOz7AYfpm4_vKFVFLN5A_H6AcHSoR2BkBPR7PWQrFvDwzrrjDh4aTmLTVvJ6pUXwEOtoTUE-BFuha0WvWr2SmdnQxA' \ --data-urlencode 'client_id=86tlyd8qd8jmvk' \ --data-urlencode 'client_secret=WPL_AP1.3ubGoWHmnXS3lZRg.4dcj2w=='

Advertising API 신청과정 (페이지용)

이 과정을 진행해야 회사 페이지(조직) 계정으로 포스팅을 할 수 있습니다. 개인 계정으로만 포스팅 하실 분들은 패스.
신청하고 나니 아래 처럼 권한이 늘어남.
참고로 r은 read, w는 write 권한임.
다시 새롭게 OAuth 2.0 Access Token을 발급합니다.
신청한 권한이 많아진 것을 확인할 수 있습니다. 모든 권한이 다 필요하진 않지만 저는 그냥 다 신청하였습니다.
Permissions Scope가 반영된 새로운 토큰으로 사용합니다.

레퍼런스

데이터팝콘 회사 페이지 https://www.linkedin.com/company/105004096/
데이터팝콘 브랜드 페이지 https://www.linkedin.com/showcase/105019977/
3-lagged Oauth 방식.
꽤나 복잡한 절차로 인증코드를 받아온다.
Standard로해서 아래 인증 내용을 넣습니다.
허용을 해주고 나면 링크드인 포스팅이 가능해집니다.
datapopcorn page - upload 이런식으로 작성하고 실행하니 urn:li:share:7260924359517614080 결과가 나왔습니다.
실제 페이지에 가보니 아래와 같이 올바르게 잘 포스팅이 되었습니다.

용어 정리

URNs and IDs

URNs are used to represent foreign associations to an entity (persons, organizations, and so on) in an API. A URN is a string-based identifier with the format:
urn:{namespace}:{entityType}:{id}
For example:
urn:li:person:123
urn:li:organization:456
URN와 ID의 차이.