2015년 8월 20일 목요일

인스타그램 데이터 수집하는 방법을 소개 합니다. [DEADED]

June 1, 2016 부터 적절한 권한 승인을 받지 못한 앱의 서비스는 정지 되었습니다.
특히, "해쉬 태그"에 대한 미디어 수집이 새롭게 추가된 public_content 범주의 승인이 필요합니다.
승인 절차가 까다로워서 당분간 지켜봐야겠습니다.

**
일부 전문가들은 비 API 적으로 웹 파싱(parsing)을 시도하고 있습니다.

기존 블로깅에서 인스타그램 수집 절차에 대해서 개괄적으로 다루었던 부분을 상세하게 요약합니다.

전체 절차는 다음과 같습니다.

1. 관리 클라이언트(Manage Client) 만들기
2. 관리 클라이언트에 엑세스할 토큰 발행하기
3. 토큰을 가지고 API 사용하기

* 마치 트렌드 처럼 트위터, 페이스북 그리고 인스타그램 모두 위와 같은 절차를 가집니다.
관리 클라이언트는 DB의 뷰(View)처럼 유용하게 활용되는 컨셉으로 이해하면 됩니다.

실습을 통해서 상세하게 다루도록 하겠습니다.


1. 관리 클라이언트 만들기.

 - https://instagram.com/developer/clients/manage/

CLIENT_ID와 REDIRECT_URL 정보를 다음 과정에서 사용 합니다.


2. 관리 클라이언트에 엑세스할 토큰 발행하기

 - https://instagram.com/oauth/authorize/?client_id=CLIENT_ID&redirect_uri=REDIRECT_URL&response_type=token



인증 후 발급받은 ACCESS_TOKEN 정보를 다음 과정에서 사용합니다. Redirect Url로 변수를 던졌으나 지정한 http://localhost 에서 변수를 받을 수 없으니 에러 페이지가 발생합니다. 변수르 받는 웹페이지를 구현할 필요 없이, 주소창에서 던져진 변수(토큰)을 카피해서 사용하면 됩니다.
토큰 발급 이후에는 보안 강화를 위해, 1번 과정에서 해제한 Security 탭에 Disable implicit OAuth를 다시 활성화 합니다.


3. 토큰을 가지고 API 사용하기.

 - https://api.instagram.com/v1/tags/TAG_NAME/media/recent?access_token=ACCESS_TOKEN

반환되는 json 포멧의 데이터는 3가지 영역을 가집니다. ['pagination','meta','data']
수집 대상인 data는 문서(media)에 대한 정보 상위 20개를 보여주고, meta는 상태를 알려주며, pagination은 DB의 커서(cursor) 처럼 결과 전후 페이지(page)를 탐색할 수 있는 방법을 제공합니다.

오피셜(Official)하게 제공되는 API로만 개발하려면 pagination을 참고하고, 일반적으로는 편리하게 사용할 수 있도록 Wrapping 되어 있는 API 사용을 권장합니다.

참고

인스타그램에서 제공되는 상세 API 설명서
 - https://instagram.com/developer/endpoints/

파이톤 API
 - https://github.com/Instagram/python-instagram

파이톤 python-instagram API를 활용한 예제 코드
 - https://bitbucket.org/snippets/juhoon26/BA9ep

0 개의 댓글:

댓글 쓰기