2023. 5. 6. 17:51ㆍ소셜 미디어 API
작성일 : 2020. 12. 22
< 준비물 >
0. 비즈니스 앱 계정과 인스타그래머의 계정
누군가의 인스타그램 게시물을 가져오려면 (계정)을 비즈니스 앱으로 등록해서 권한을 부여 받아야 한다.
그리고 가져올 인스타그래머의 계정을 알고 있어야 한다.
1. python
2. facebook SDK (pip 로 설치)
< API 정보 >
FACEBOOK for Developer - Business Discovery 문서에서 누군가의 게시물 정보를 가져올 때 다음과 같은 포맷을 활용하라고 함 :
(Web)
GET /{ig-user-id}?fields=business_discovery.username({username})
{id-user-id} 가 비즈니스 계정(즉, 개발자 측)이며 맨뒤에 따라오는 {username} 은 조회할 인스타그래머의 계정이다.
이 API 한 줄로 인스타그래머 1명의 공개 게시물 목록을 모두 가져온다. 즉, 조회할 인스타그래머가 여럿이라면 for loop 을 돌려서 가져오도록 작성하면 된다.
(Python)
import facebook
// 원래 한 줄인데 가독성을 위해 여러 줄로 끊었음
post = graph.get_object(id=비즈니스앱계정, fields="business_discovery.username({})
{{followers_count,media_count,media.limit({})
{{timestamp,media_type,caption,comment,permalink,media_url,
comments_count,like_count,children{{media_url}}}}}}"
.format('조회대상인스타그램계정', MAXRESULTS))
username('인스타그래머의 아이디') 뒤에 {{}} 로 감싼 부분은 조회할 항목을 나열해놓은 것이다.
이 부분은 아래의 참고 자료에서 직접 확인해보기 바란다.
< 정상 응답 결과 >
media_type (미디어 타입) 으로는 IMAGE, VIDEO, CAROUSEL_ALBUM 이 있는데,
CAROUSEL_ALBUM 이름이 길어서 거창하지만, IMAGE, VIDEO 를 여러 개로 나열해놓은 것을 가리킨다.
(carousel : 회전목마; 즉, 슬라이드로 넘겨서 볼 수 있다는 의미이다.)
위의 python 코드에서 children{{media_url}} 을 넣은 이유가 CAROUSEL_ALBUM 정보를 가져오기 위해서이다.
{
"business_discovery": {
"followers_count": 1,
"media_count": 10,
"media": {
"data": [
{
"timestamp": "2020-12-16T01:49:59+0000",
"media_type": "CAROUSEL_ALBUM",
"caption": "랄랄라~ 인스타그램 게시글 (내용)",
"permalink": "https://www.instagram.com/p/(게시글 식별 ID)/",
"media_url": "인스타그램 CDN URL (만료기간 있음)",
"comments_count": 0,
"like_count": 0,
"children": {
"data": [
{
"id": "(17자리 숫자로 이루어진 미디어 식별자)",
"media_url": "앨범 내 미디어의 CDN URL (만료기간 있음)
},
{
"id": "(17자리 숫자로 이루어진 미디어 식별자)",
"media_url": "앨범 내 미디어의 CDN URL (만료기간 있음)
},
...
]
},
"id": "(17자리 숫자로 이루어진 미디어 식별자)"
},
{
"timestamp": "2020-12-11T07:00:19+0000",
"media_type": "VIDEO",
"caption": "인스타그램 게시글 (내용)",
"permalink": "https://www.instagram.com/p/(게시글 식별 ID)/",
"media_url": "인스타그램 CDN URL (만료기간 있음)",
"comments_count": 0,
"like_count": 0,
"id": "(17자리 숫자로 이루어진 미디어 식별자)"
},
{
"timestamp": "2020-12-02T15:35:34+0000",
"media_type": "IMAGE",
"caption": "test 인스타그램 게시글 (내용)",
"permalink": "https://www.instagram.com/p/(게시글 식별 ID)/",
"media_url": "인스타그램 CDN URL (만료기간 있음)",
"comments_count": 0,
"like_count": 1,
"id": "(17자리 숫자로 이루어진 미디어 식별자)"
}
]
},
"id": "(17자리 숫자로 이루어진 식별자)"
},
"id": "(17자리 숫자로 이루어진 미디어 식별자)"
}
참고 자료 :
https://developers.facebook.com/docs/instagram-api/reference/user/business_discovery
developers.facebook.com/docs/instagram-api/reference/user
developers.facebook.com/docs/instagram-api/reference/media