node.js를 사용할 것이기 때문에 npm init을 해주고 app.js코드를 간단하게 작성후 localhost:3000으로 웹페이지를 띄워두었다.
일단 메세지를 나에게 보내려면 kakao api를 사용해야 한다.
kakao developers : developers.kakao.com/docs/latest/ko/message/rest-api#create-message
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
인가코드 발급은 쉽다. 예시에 나와있는 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를 사용할 수 있다!(이걸 몰라서 엄청 헤맸다..)
'프로젝트 > ICE_ALERT' 카테고리의 다른 글
03. 카카오 로그인 코드 짜보기 (0) | 2021.01.21 |
---|---|
02. KAKAO 메시지 API로 나에게 카톡 보내기 (0) | 2021.01.21 |
ICE_ALERT 개인프로젝트 시작! (0) | 2021.01.19 |