Instagram "Business Discovery" API

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

 

비즈니스 검색 - Instagram 플랫폼 - 문서 - Facebook for Developers

 

developers.facebook.com

developers.facebook.com/docs/instagram-api/reference/user

 

IG 사용자 - Instagram 플랫폼 - 문서 - Facebook for Developers

 

developers.facebook.com

developers.facebook.com/docs/instagram-api/reference/media

 

IG 미디어 - Instagram 플랫폼 - 문서 - Facebook for Developers

 

developers.facebook.com