개발 공부

인스타 api(instagram-basic-display-api) in java

해당 글의 2020년 7월 29일 실습 후 작성 된 글입니다.

 

본 글에서는 instagram-basic-display-api를 사용하기 위해서 access_token 값과 해당 토큰값을 장기 토큰값으로 변경하며 장기토큰 값을 갱신하는 방법을 소개하고자 합니다.

아래 링크는 instagram-basic-display-api 사용 단계가 설명되어 있는 공식설명문서입니다.

https://developers.facebook.com/docs/instagram-basic-display-api/getting-started

 

시작하기 - Instagram 플랫폼 - 문서 - Facebook for Developers

 

developers.facebook.com

 

본 글에서는

1단계 facebook 앱 만들기

2단계 Instagram 기본 디스플레이 구성

3단계 Instagram 테스트 사용자 추가

이후의 과정부터 설명합니다. 해당 단계들은 위 링크에서 확인해서 하시길 추천 드립니다.

다만

저의 경우 2단계 과정 중 url 적는 부분은 테스트를 하기위해서 https:localhost:8443/ 으로 적었습니다.

4단계 테스트 사용자 인증

인스타 설명의 예)

이부분에서 신경써야하는 건 app-id 가 인스타의 id이므로

제품 > 인스타 > 기본표시 에서 확인할수 있는

인스타 앱 id를 적어야하며

redirect_uri 에는 꼭 본인이 2단계에서 적었던 유효한 리다렉션uri 중 하나로 해야합니다. 혹시나 적지 않았다면 앞선 것과 마찬가지로

제품> 인스타 > 기본표시에 가시면 설정할 때 보았던 페이지를 다시 보실 수 있습니다.

저의 경우

<--테스트 사용자 인증-->

https://api.instagram.com/oauth/authorize

?client_id=본인 id

&redirect_uri=https://localhost:8443/

&scope=user_profile,user_media

&response_type=code

이렇게 보냈으며 정상적으로 보내지면

이런 창이 뜨고 authorize를 눌으면 주소창에

https://localhost:8443/?code=AQBy524dxA5WZHnMqnIfPiw3xbqvZwFV0.........#_

이런식으로 리다이렉션이 됩니다.

이때 뒷부분 중code 뒤부터 #_ 앞까지가 code의 값이 됩니다.

이제 이 코드로 access_token을 받아 봅시다.

저는 자바 환경에서 받아야 하기 때문에 http 통신을 사용하였습니다.

사진의 [본인 코드]는 위에서 받은 코드값을 넣고 [본인 id],[본인 시크릿]의 경우는

제품 > 인스타 > 기본표시 에서 확인할 수 있는 id와 시크릿코드를 넣으시면 됩니다.

위의 코드는

이런식으로 토큰값을 확인할 수 있는데 이 토큰은 1시간뒤에 만료되는 토큰이기때문에 이 토큰을 통해서 장기 토큰을 받아봅시다.

인스타 예)

이 경우 앞선 자바 코드를 get으로 바꾸어서 통신해도 되지만 귀찮다면 그냥 본인 브라우저를 열고 주소창에 위의 코드에 본인 값들 맞게 써서 이동하면

이런식으로 리턴해줍니다.

Long-Lived Access Tokens의 경우 60일 뒤 만료가 되면 60일 이전에 갱신하면 새로은 토큰 값을 주게되는데

인스타 예)

앞서서와 맞찬가지로 값들 채워서 주소창 이동하면

이런식으로 리턴해줍니다.

받아온 토큰값으로 본인의 미디어 정보를 가져오는 내용은 아래 공식 문서를 보시는 걸 추천 드립니다.

https://developers.facebook.com/docs/instagram-basic-display-api/guides/getting-profiles-and-media

 

프로필 및 미디어 가져오기 - Instagram 플랫폼 - 문서 - Facebook for Developers

 

developers.facebook.com

 

 

'개발 공부' 카테고리의 다른 글

REST API  (0) 2021.02.24
include액션태그와 include 디렉티브  (0) 2021.02.16
base 64 인코딩  (0) 2021.02.16