특정 페이지를 방문 했을 때
‘페이스북으로 로그인하기’, ‘카카오톡으로 로그인하기' 등
해당 페이지에 회원가입을 하지 않고 다른 서비스를 이용해서 대신 로그인 해보신 경험이 다들 한 번씩은 있을 텐데요. 그것이 바로 카카오에서 제공하는 api중 하나인 ‘사용자관리’api입니다.(api가 무엇인지 모르신다면 저의 다른 게시글을 먼저 읽어주세요.)
카카오의 사용자관리 api를 사용하기 위해서는 아래 링크를 따라 우선 카카오 개발자 플랫폼에 접속을 하셔서 카카오 계정으로 로그인을 하셔야해요.
접속하셔서 기본적인 앱 등록 및 key발급까지 마치셨다면 (가이드를 페이지에서 제공을 해줘요) 본격적으로 설명을 시작하겠습니다.
아래 페이지로 접속을 해주세요.
링크를 따라 접속하시면 아시겠지만 많은 api를 제공합니다. 그 중에서 저는 rest api에 대해 설명을 할 예정입니다.(제 게시글에 rest api에 대한 설명도 있습니다)
- 코드 받기
설명이 이렇게만 되어있는데 사실 아무것도 모르는 사람이 보기에는 정말 대략 난감합니다. 이 말인 즉슨 아래의 url정보를 사용자가 누르게 될 a태그의 href 속성에 넣으라는 얘기입니다.
정상적으로 작동이 된다면 위의 ‘redirect_uri’는 url주소의 형식으로 응답을 받게 될 것인데 그 안에 사용자 관리 api를 호출할 때 필요한 토큰! ! 이 아니라! 그 토큰을 얻어낼 수 있는 code를 얻게 됩니다.
코드를 살펴볼까요?
먼저 파이썬 코드를 살펴보면 못보던 코드가 많이 보이실텐데요. 해당 게시글은 api를 설명하기 위한 글이므로 별도로 다루진 않겠습니다. 잘 모르시는 분들도 따라 적어주세요. ‘import requests’는 terminal에 별도로
pip install requests
명령문을 입력을 해주셔야 해요.
또한 ‘import json’ 도
pip install json
명령문 입력을 해주셔야 사용이 가능합니다.
이제 사전준비는 끝났습니다.
위의 index페이지에서 ‘Kakao login’을 누르게 된다면 계정 로그인 창으로 이동 후에 redirect_uri에 입력했던 uri돌아오게 됩니다. 저는 ‘/oauth’로 설정해놓았기 때문에
“def oauth():” 를 만들었습니다.
안의 코드를 살펴보면 request.args.get(‘code’) 라는 것이 있는데요
응답 받은 리퀘스트(uri 주소)에서 ‘code’에 대응하는 값을 가져온다는 의미입니다. 확인해볼까요?
위의 url창을 주목해주세요. 저게 url형식으로 받은 응답 값인데요 저기서 저희는 ‘code’의 값만 필요하기 때문에 아래와 같이 따로 분리해서 가져온 것입니다. 이제 token을 얻을 준비는 끝난거죠
2. token 받기
이게 카카오 개발자 플랫폼의 설명 글인데요, 마찬가지로 잘 모르는 사람들은 이것만 보고는 어떻게 해야할 지 감이 안오죠. python코드로 보여드리겠습니다.
아까의 코드에 붙여 넣어주시면 되요. (14번 줄 지우고 거기에 입력해주세요)
18번 줄의 ‘client_id’=’부터 ‘&’ 사이는 여러분이 발급받은 rest_api키로 바꿔주셔야합니다.
이 코드를 통해서 access_token 값을 가지고 올 수 있습니다.
3. 앱연결
카카오 플랫폼은 코드를 작성하기 위한 틀이죠. python코드로 변환한다면
입니다. 아까의 25번 라인을 지우고 이어붙여주세요.
그리고 페이지를 확인 해본다면
이미 앱 연결이 만료되었다는 내용을 출력해주고 있습니다.
4. 사용자 정보 가져오기
역시나 카카오 플랫폼의 내용보다는 제가 파이썬으로 변경한 코드를 보도록 하겠습니다.
32번 줄 코드를 지우고 붙여넣어주세요
그리고 코드가 가져오는 내용을 확인해본다면?
이처럼 사용자의 정보(이름, 이메일, 프로필 사진)등이 불려오는 것을 확인 할 수 있습니다. 사용자는 자신의 고유 식별 id값을 받게 되는데요. 이 id값을 이용해서 사용자들을 관리 할 수 있게됩니다.
지금까지 파이썬의 플라스크를 이용해서 카카오 api의 하나인 사용자관리 api에 대한 설명이었습니다.