Contents

조회 수 49 댓글 0
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/



?

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
» Develop [api] 인스타그램 API Access_Token 발급 방법 (Instagram API) file hooni 2018.04.05 49
1115 Develop [api] 인스타그램에서 최신 이미지 가져오기 (Using Instagram API) file hooni 2018.04.05 50
1114 Develop [js] Click button copy to clipboard hooni 2018.04.05 15
1113 Develop [php] Laravel 4. twitter bootstrap 적용하기 hooni 2018.04.05 17
1112 System/OS How to Setup an Email Server on CentOS 7 hooni 2018.04.05 10
1111 Develop How to Test SMTP AUTH using Telnet hooni 2018.04.05 13
1110 System/OS [mac] 맥에서 기본 실행 앱 변경하기 file hooni 2018.03.02 44
1109 System/OS 콘솔에서 패스워드 걸린 zip 압축하는 명령 hooni 2018.03.02 39
1108 Develop What is difference between Get, Post, Put and Delete? hooni 2018.02.28 39
1107 Develop [php] Laravel Route에서 PC/Mobile 분기 hooni 2018.01.24 81
1106 Develop Laravel 5 Failed opening required bootstrap/../vendor/autoload.php hooni 2018.01.24 55
1105 Develop [php][laravel] 라라벨 개발환경 세팅하기 (Mac, Window) 2 file hooni 2017.12.15 175
1104 Develop [php][laravel] 라라벨 프로젝트 생성 및 구조 file hooni 2017.12.15 135
1103 Develop [php][laravel] 초간단 MacOS에서 Laravel 개발 환경 구축 hooni 2017.12.15 100
1102 Database [mysql] MacOS에 MySQL 설치, 설정, 암호 재설정 file hooni 2017.12.15 109
1101 Database [mysql] ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement. hooni 2017.12.15 58
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 70 Next
/ 70