Intagram Basic Display API 에서 Instagram API 로의 교체

·2025년 3월 5일

Spring Boot

목록 보기
4/4
post-thumbnail

이건 2024년 12월에 일어났던 아주 공포스러운 일이다.

나는 Instagram Basic Display API 를 활용하여 회사 업무 관련 인스타그램을 릴스만 불러오고 있었다.

그런데 어느 날 갑자기 화면에서 엑박이 뜬다는 제보를 받음.


하 이게 나에게 일어난 일일 리 없어...

그날은 조기 퇴근이었고, 집에 돌아와서 4시에 삼겹살 먹으려고 시켜둔 상태여서 삼겹살을 시켜놨던 상태였다....

그리고 난 그 삼겹살을 먹지 못했다.

인스타그램 측에서 Instagram Basic Display API 를 12월 3일에 종료시켰고, 나는 공식 문서를 매일 보면서도 그걸 확인 안 했기 때문이다. 하..... 이 미친놈아.

그래서 Instagram Basic Display API 가 아닌, Instagram API 를 통해 인스타그램 게시글을 불러오고 활용하는 방법을 남겨두려고 한다.

우선 인스타그램 API 를 불러오는 방식.

GPT 가 그려줬다. 암튼 저 Basic display 가 종료돼서 인스타그램 API 로 변경하는 과정인데, 과정은 비슷하긴 하지만 방식이 약간 달라졌다고 볼 수 있다.

내가 구축하는 과정에서는 Instagram API 방식 포스팅이 하나도 없어서 공식 문서 보고 했다... 귀찮았음

메타의 공식 문서 너무 불친절하기 때문이다
(메타는 공식 문서를 잘 쓰는 사람은 남기고 사람을 잘랐어야 했다)

Intargram API 적용

1. Meta for Developers 내 API 변경

앱 등록 방법은 Instagram Basic API 와 같다.

우선 앱에 아래 제품을 추가해 주자.

2. Instagram 로그인이 포함된 API 설정

아래 두 작업은 인스타그램 앱 대시보드 내에서 미리 수행해야 한다.

(1) 불러오고 싶은 인스타그램 엑세스 토큰 생성하기

(2) 개별 사용자의 ID 값 알고 있기

빨간색으로 처리된 곳에 있는 개별 사용자의 ID 값이 있어야 한다 (basic 과 다른 점!)
그리고 엑세스 토큰은 해당 사용자의 미디어 값에 접근할 수 있는 값이므로 받아 두기

3. 코드 작성

원래 인스타그램 basic api 는 그냥 해당 사용자의 모든 값을 불러왔는데, Instagram 은

  1. 먼저 사용자의 계정 ID 를 api 와 같이 넘기면 해당 사용자의 media ID 값을 넘겨준다.

  2. 해당 값을 가지고 필요한 미디어만 골라서 사용할 수 있다.


1. media id 값을 던져주는 url
 String mediaUrl = "https://graph.instagram.com/v21.0/(userID)/media?access_token=" + accessToken;
 // userId 는 추가한 인스타그램 계정 밑에 있는 숫자로 된 17자리 수이다
 // api 버전은 22가 현재 최신 버전이라고 한다


2. media id 값을 주면 릴스 값을 물고 오는 url
 String detailUrl = "https://graph.instagram.com/" + mediaId + "?fields=id,media_type,media_url,thumbnail_url,caption,permalink,media_product_type,timestamp,username&access_token=" + accessToken;
 

media ID 값 (= 하나의 게시글)이 있으면 아래 페이지에 나와 있는 매개변수로 필요한 값만 불러다 이용할 수 있음~

https://developers.facebook.com/docs/instagram-platform/reference/instagram-media

나는 급하게 하느라 당황해서 슬프게 만들었었지만 이런 가이드 게시글이 하나라도 존재한다면 길잡이 역할을 할 것 같아서 작성한다.

profile
자바 백엔드 개발자 개인 위키

2개의 댓글

comment-user-thumbnail
2025년 3월 26일

이거 단기토큰인가요? 기존엔 단기토큰 -> 장기토큰으로 변환했어야 하지않았나요 ㅜㅜ 하긴했는데 ,, 장기토큰으론 어떻게 하는건지 .. 궁금하네요.. 하 `....왜 종료시켜가주고 ㅜㅜ

1개의 답글