Contents

조회 수 7502 댓글 3
Atachment
첨부 '8'
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

# How to get an Instagram AccessToken

인스타그램 API 토큰 발급받는 방법



인스타그램 API는 정책변동이 심해서 매뉴얼이 자주 바뀌니 이 글의 작성일을 참고해야 한다.

Instagram API의 Access Token을 가져오는 방법은 크게 두 가지가 있다.


1) 서버사이드 방식으로 가져오기 (Server-side)

  - Instagram이 제공하는 URL에 사용자 정보를 보내 code를 얻은 후,

  - 그 code 값을 사용해 다시 Instagram에 질의해 access_token을 얻는다.


2) 클라이언트 방식으로 가져오기 (Client-side)

  - Instagram이 제공하는 URL에 사용자 정보를 보내 바로 access_token을 얻는다.


예전에는 조금 더 간단한 클라이언트사이드 방식을 사용했지만 보안상 문제가 있었는지 서버사이드 방식을 추가했고 기본적으로는 서버사이드로 동작하게 되어 있다.


두 가지 방식 모두 어떻게 실행하는지 알아보자.




1. 새로운 Client를 등록

토큰을 사용하기 위해서는 클라이언트를 등록해야 한다. 등록된 각 클라이언트마다 고유의 Client ID와 Client Secret 코드를 발급받게 되고 Access-token을 생성하는 쿼리에서 이 정보를 파라미터로 사용한다.


 - https://www.instagram.com/developer 로 접속 후 Register a New Client 클릭.


step01.png




다음과 같이 각자 본인의 클라이언트 정보를 입력하되 Valid RedirectURIs 는 반드시 유효한 주소로 적어야 한다.

(토큰이 발급될 때 해당 주소로 리다이렉션 되면서 발급되기 때문이다.)


step02.png




등록이 완료되면 다음과 같이 Client ID 와 Client Secret 정보가 생성된다.


step03.png






2. Access_Token 생성

이제 해당 클라이언트의 Client ID와 Client Secret를 이용해 Access-Token을 얻기 위한 쿼리를 작성해서 실행하면 된다.

일단, 좀 더 복잡하다는(?) 서버사이드 방식부터 해보자.




2-1) 서버사이드 방식으로 가져오기

아래 URL에 조금전 얻은 본인의 Cliennt-ID와 Redirect-URI를 넣고 브라우저에서 실행한다.

https://api.instagram.com/oauth/authorize/?client_id={Client ID}&redirect_uri={Redirect URI}&response_type=code


정상적으로 실행이 완료되면 다음과 같은 인증화면이 나온다.

Authorize 버튼을 클릭하여 인증한다!!

step06.png


Authorize  버튼을 누르고 정상적으로 실행이 되면 Redirect-URI가 호출되면서 브라우저의 주소창에 code 값이 함께 표시된다.

예) https://www.hooni.net/xe/?code=4ace6244e8054d87bfcfa7b583bcc310

step04.jpg



이 code 값을 잘 메모 해둬야 한다.

Access-Token을 얻는 쿼리 구문에 파라미터로 사용되기 때문이다.


이제 터미널 창을 열어서 다음과 같이 curl 명령문을 작성한다.

초록색 값을 본인의 클라이언트 정보(Client ID, Client Secret)와 방금 생성된 code 값으로 치환하여 명령을 실행한다.


curl -F 'client_id=323f9a05904741ef89fd521f8738b18e' \
 -F 'client_secret=5bde7f12aa384de0873a1f402936833e' \
 -F 'grant_type=authorization_code' \
 -F 'redirect_uri=http://hooni.net' \
 -F 'code=4ace6244e8054d87bfcfa7b583bcc310' \
 https://api.instagram.com/oauth/access_token


정상적으로 실행되면 다음과 같은 JSON 정보가 응답으로 출력될 것이다.

결과)

{
  "access_token": "43929825.323f9a0.da59f40f9dce4286b9bf6f230c0e5a18",
  "user": {
      "id": "43929825",
      "website": "http://hooni.net",
      "profile_picture": "https://scontent.cdninstagram.com/vp/7f72290dfd10c2b150a2c5bc18ef3887/5B5C4E47/t51.2885-19/s150x150/12568260_1505560239748160_1052864547_a.jpg",
      "bio": "",
      "full_name": "hooni",
      "username": "picomax"
  }
}


실행 예)

step08.png


위의 응답 결과에서 access_token 값을 사용하면 된다.




2-2) 클라이언트사이드 방식으로 가져오기

클라이언트사이드 방식은 앞서 설명한 방식보다 훨씬 간편하고 쉽다. 따로 명령어를 작성하고 터미널에서 실행할 필요가 없이 URL을 작성해서 브라우저에서 실행하면 된다.


먼저 Manage Clients 메뉴로 들어가서 Security 탭으로 이동하여 아래의 Disable implicit OAuth 체크박스를 해제 한다.


step05.png



그리고 다음과 같이 본인의 Client ID와 Redirect URI를 이용해 URL을 만들어서 브라우저에서 실행한다.

https://api.instagram.com/oauth/authorize/?client_id={Client ID}&redirect_uri={Redirect URI}&response_type=token


정상적으로 실행이 완료되면 다음과 같은 인증화면이 나온다.

Authorize 버튼을 클릭하여 인증한다!!

step06.png


Authorize 버튼을 클릭 후 정상적으로 처리가 되면 다음과 같이 Redirect-URI로 이동되고 주소창에서 access_token 값이 함께 표시된다.


예) https://www.hooni.net/xe/#access_token=43929825.323f9a0.da59f40f9dce4286b9bf6f230c0e5a18

step07.jpg


위의 응답 결과에서 access_token 값을 사용하면 된다.


마지막으로..

Access-Token을 생성 후,

다시 위에서 해제했던 “Disable implicit OAuth” 체크박스를 다시 체크해야 한다.



[관련자료]

인스타그램에서 최신 이미지 가져오기 (Using Instagram API)

https://hooni.net/91802



[출처] https://www.instagram.com/developer/authentication/




?
  • ?
    탱구 2018.07.16 16:48
    덕분에 잘 추출하였습니다.
    감사합니다 ~ !
  • profile
    hooni 2018.07.17 06:35
    댓글 감사합니다 ㅎㅎ
  • ?
    으구 2020.01.07 15:33
    안녕하세요 그동안 문제 없이 토큰을 잘 받았는데,
    아이디를 삭제하고 다시 발급하려고 하니

    등록란에 이렇게 메세지가 뜨네요 ㅠㅠ
    혹시 왜그럴까요?

    You have not registered any clients with the Instagram API.

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
1173 Develop [ios] 아이폰용 앱 오픈 소스들 hooni 2013.04.23 465710
1172 Develop [ios] 언어, 지역, 국가 설정 가져오기 hooni 2014.05.12 269013
1171 Develop 자주 쓰는 Docker 명령어 alias hooni 2020.01.10 268114
1170 Etc 베지어 곡선 (Bezier curve) file hooni 2013.08.18 220022
1169 Develop [ios] Start developing your navigation app for CarPlay without enrollment file hooni 2020.02.22 124510
1168 Develop [android] 만화 어플 소스코드 file hooni 2013.04.23 92832
1167 Develop 레고 마인드스톰 NXT 수도쿠, 큐브 소스코드.. 20 file hooni 2013.04.23 81372
1166 Algorithm 디피헬만(Diffie-Hellman) 초간단 개념.. hooni 2013.04.23 81004
1165 Develop [c#] Hashtable <-> Json (dll 포함) file hooni 2013.04.23 80645
1164 Develop [C#] MD5, SHA1 해시 & 인코딩 hooni 2013.04.23 77850
1163 Develop [android] 점심 해결 앱 소스 코드 ㅋㅋ file hooni 2013.04.23 76392
1162 PPT [android] XML파서(XMLParser)의 종류와 성능 비교에 대한 발표 자료 file hooni 2013.04.23 75631
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 98 Next
/ 98