본문 바로가기

moodle

[Moodle] 카카오톡 나에게 보내기 api 무들에 연결하기 - (2) 카카오톡 "insufficient scopes." 에러 해결, 나에게 카톡 보내기

반응형

 

안녕하세요 주갬입니다. 

 

저는 교육용 오픈소스 moodle과 카카오톡API를 연결하던 중 오류메시지를 확인했습니다.

 

{

"msg": "insufficient scopes.",

"code": -402,

"api_type": "TALK_MEMO_DEFAULT_SEND",

"required_scopes": [

"talk_message"

],

"allowed_scopes": []

}

라는 내용의 response를 받아 에러의 원인을 찾아보았습니다.

 

 

response의 "allowed_scopes": [] 는 동의한 권한이 없다는 뜻인데요,,

developers.kakao 페이지에서 동의항목을 확인해보면  분명 카카오톡 메시지 전송에 체크가 잘 되어 있습니다!! 

그렇다면 "allowed_scopes": ["talk_message"] 가 되어야 정상인데 이유가 뭘까요,,

 


 

결론적으로 해결방법은 API를 호출할 때 추가 동의를 받도록 처리하면 됩니다.

 

https://developers.kakao.com/docs/latest/ko/kakaologin/rest-api#additional-consent

 

Kakao Developers

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

developers.kakao.com

추가 동의를 요청 시 카카오 인증 서버는 사용자에게 추가 동의 받을 항목의 동의를 요청하는 화면을 출력합니다. 사용자가 해당 항목에 동의하면 추가 동의가 성공 및 완료되고, 사용자가 취소하면 추가 동의 요청이 실패합니다. 

 

 

 

추가 동의를 얻기 위한 방법에 대해 설명드리겠습니다.

https://kauth.kakao.com/oauth/authorize 에 다음과 같은 파라미터를 넣고 GET요청을 합니다.

 

 

 

여기서 client_id는 이전 게시글 2번에서 받아온 사용자 코드입니다.

2021.07.02 - [moodle] - moodle + 카카오톡 나에게 보내기 api 연결하기 - (1) 카카오톡 access token, refresh token 받는 방법

 

moodle + 카카오톡 나에게 보내기 api 연결하기 - (1) 카카오톡 access token, refresh token 받는 방법

안녕하세요 주갬입니다! 오늘은 교육용 오픈소스인 moodle에 카카오톡 나에게 보내기 api를 연결해보도록 하겠습니다. 1. 카카오톡 api 계정 생성 및 설정하기 카카오톡 api를 이용하기 위해서는 카

joogaem.com

 

 

 

 

그럼 다음과 같은 response가 받아지며, 위의 url을 주소표시줄에 입력하면 다음과 같은 화면을 보실 수 있습니다.

 

동의하고 계속하기를 누르면 다음과 같이 화면이 넘어가면서 주소표시줄의 "code =" 뒷부분에서 사용자 코드를 확인하실 수 있습니다.

 

 

이 사용자 코드는 "추가 동의를 진행한" 버전의 사용자 코드를 새로 받아온 것이므로 access token을 받는 과정을 다시 해주어야 합니다.

 

access token 을 받아오는 화면으로 돌아가 code부분에 새 코드를 입력 후 처리하면 새로운 access token과 refresh token을 받아올 수 있습니다. (아까 메모장에 적혀있던 코드들을 이 새 코드로 교체하세요!!😄 )

 

scope에 "talk_message" 가 추가된 모습도 확인할 수 있네요!!

 


 

이제 추가 동의된 사용자 코드와 access token도 있겠다, 본격적으로 메시지를 보내보겠습니다.

 

다음과 같이 header 파라미터와 body에 보낼 메시지의 내용을 입력 후 send를 누릅니다.

 

"result_code : 0"은 메시지가 잘 전송되었다는 뜻이니, 잘 보내졌는지 확인해볼까요~? 😆

 

 

나에게 보내기 메시지가 잘 전송된 모습을 확인하실 수 있습니다!!!

 


 

 

다음시간에는 무들 일정 기능에 이 api를 붙여 일정을 카카오톡으로 받아올 수 있는 기능을 구현하도록 하겠습니다.

 

감사합니다.!!

반응형