본문 바로가기
프로젝트/ICE_ALERT

01. KAKAO 메시지 API 사용하기 전 준비단계

by ujin2021 2021. 1. 20.

node.js를 사용할 것이기 때문에 npm init을 해주고 app.js코드를 간단하게 작성후 localhost:3000으로 웹페이지를 띄워두었다.

 

일단 메세지를 나에게 보내려면 kakao api를 사용해야 한다.

kakao developers : developers.kakao.com/docs/latest/ko/message/rest-api#create-message

 

Kakao Developers

카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.

developers.kakao.com

1. 카카오 로그인 후 app 만들기

1-1. 오른쪽 상단의 로그인 버튼을 눌러 카카오 계정으로 로그인한다.

1-2. 내 애플리케이션을 클릭한후 애플리케이션 추가하기 버튼을 누른다

1-3. 앱이름과 사업자 명을 추가한다(나는 앱이름과 사업자명을 동일하게 했다.)

 

2. app 설정하기

2-1 앱을 만든 후, 앱설정>플랫폼>web에서 플랫폼을 등록한다 (사이트 도메인은 일단 naver주소로 해두었다)

2-2. 등록하면 카카오 로그인 사용시 Redirect URI를 등록해야 한다고 밑에 문구가 뜬다. 등록해준다(이것은 http://localhost:3000/으로 등록했다. 나중에 카카오 로그인 api를 하면 알겠지만, 토큰받을 때 localhost로 해주면 확인이 쉬워서..)

2-3 제품설정>카카오로그인 활성화 설정 상태를 ON으로 바꿔준다

2-4 제품설정>카카오로그인>동의항목에서 개인정보 보호-프로필 정보를 필수항목으로 설정해주고, 접근권한 관리-카카오톡 메시지 전송을 선택동의로 설정해준다

 

3. 카카오 로그인 API 사용해보기

docs에 나와있는대로 하면 척척진행될 것 같았는데,,, 시간이 은근 오래걸렸다.

나는 app을 만들때 Rest api key를 발급해주길래 이게 토큰인줄알고 header에 이 키값을 넣어서 한참을 401 에러를 보아야 했는데, 알고보니 카카오로그인 api를 사용해서 token을 발급해야 메시지 api도 사용할 수 있었다.

 

3-1. 카카오 로그인 api로 인가코드 발급하기(REST API 사용)

developers.kakao.com/docs/latest/ko/kakaologin/commondevelopers.kakao.com/docs/latest/ko/kakaologin/rest-api

 

Kakao Developers

카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.

developers.kakao.com

인가코드 발급은 쉽다. 예시에 나와있는 url을 주소창에 복붙해주자

 

url : https://kauth.kakao.com/oauth/authorize?response_type=code&client_id={REST_API_KEY}&redirect_uri={REDIRECT_URI}

method : get

 

* {REST_API_KEY} : 이 자리에 아까 app을 만든 후 발급받은 key값을 넣어준다.(key 값은 내 애플리케이션>앱설정>요약정보>앱키>REST API 키. (예시로 ffffaaaaffff 라고 하겠다)

* {REDIRECT_URI} : 애플리케이션 설정시 등록해둔 url을 넣어준다(나의 경우 http://localhost:3000/)

 

ex) https://kauth.kakao.com/oauth/authorize?response_type=code&client_id=ffffaaaaffff&redirect_uri=http://localhost:3000/

 

이 url을 주소창에 복붙한다(난 redirect_uri를 localhost로 해두었기때문에 npm start로 app을 실행시켜두었다)

페이지가 새로고침되면서 주소창에 redirect_url/?code={인가코드} 가 뜬다. 저 흰색부분을 복사해두자.

확인결과 인가코드를 받는 get을 할때마다 코드가 변경되니 만약 get을 다시 했다면 토큰발급시 인가코드 부분을 새로발급된 인가코드로 고쳐줘야 한다.

 

3-2 인가코드를 사용해 사용자 토큰 발급하기

url : https://kauth.kakao.com/oauth/token

method : post

body :

{
"grant_type" : "authorization_code",
"client_id" : "ffffaaaaffff",
"redirect_uri": "http://localhost:3000/",
"code": "aaaa"
}

 

* grant_type : "authorization_code" 로 고정한다

* client_id : 애플리케이션의 rest api key를 사용한다(ffffaaaafffff라고 하자)

* redirect_uri : 애플리케이션 설정에서 등록해둔 redirect_uri를 사용한다

* code : 3-1에서 발급한 인가코드를 붙여넣기 한다

 

이것도 예시대로 curl로 확인하는 것이 가장 빠르다. insomnia를 사용한다면(postman도 마찬가지)

 

이렇게 form 형식을 이용해 post를 보내면 token이 res로 도착한다! access_token을 복사해두자

 

access_token까지 발급받았다면 이제 메시지 api를 사용할 수 있다!(이걸 몰라서 엄청 헤맸다..)