{‘msg’: ‘insufficient scopes.’, ‘code’: -402, ‘api_type’: ‘TALK_MEMO_DEFAULT_SEND’, ‘required_scopes’: [‘talk_message’], ‘allowed_scopes’: [‘profile’]}
REST API를 사용중입니다.
카카오톡 나에게 메세지보내기를 했는데 이러한 오류가 뜨면 어떻게 해결할 수 있나요…?
안녕하세요. 답변감사합니다.
required_scopes인 talk_message를 내 애플리케이션>제품설정>카카오 로그인>동의항목 에서 선택동의를 했는데도
{‘msg’: ‘insufficient scopes.’, ‘code’: -402, ‘api_type’: ‘TALK_MEMO_DEFAULT_SEND’, ‘required_scopes’: [‘talk_message’], ‘allowed_scopes’: [‘profile’]}
이렇게 같은 오류가 뜨면 어떻게 해야하나요?ㅠㅠ
talk_message
에 대한 동의가 제대로 이뤄지지 않았어요.
선택 동의항목으로 설정한 후, 추가 항목 동의 받기 API를 호출하여 사용자로부터 추가 동의를 받는 과정을 거쳐야 합니다.
- [내 애플리케이션] > [카카오 로그인] > [동의 항목] 설정
- API 호출로 사용자가 메시지 전송 기능에 접근할 때 추가 동의 받기
두 단계 모두 처리하셔야 합니다.
- API 호출로 사용자가 메시지 전송 기능에 접근할 때 추가 동의 받기 -> 이 부분이
GET /oauth/authorize?client_id={app_key}&redirect_uri={redirect_uri}&response_type=code HTTP/1.1
Host: kauth.kakao.com 이 코드를 이용하여 로그인 후 동의 항목 확인 화면에서 서비스 이용동의를 받는 것이 맞나요…? 이 방법이 맞다면 해보았는데 로그인 후 ‘사이트에 로그인할 수 없음.’ 이 뜹니다ㅠㅠ
네, 처음 로그인했을 때와 같은 화면에 카카오톡 메시지 전송 권한 체크 항목이 있다면 맞습니다.
로그인하는 화면이 나와서 로그인을 했는데 메시지 전송권한 체크 항목이 뜨지 않고 ‘사이트에 연결 할 수 없음’ 페이지와 ERR_CONNECTION_TIMED_OUT 이 뜹니다ㅠㅠ
redirect_uri를 [내 애플리케이션]>[앱 설정]>[플랫폼]>웹 사이트 도메인에 있는 localhost.com을 넣었는데 잘못한 넣은 건가요?
redirect uri는 로그인 요청 중 인증 코드를 받아 사용자 토큰 요청을 하는 동작을 하고, 사용자를 올바른 로그인 완료 페이지로 리다이렉트 시키는 등 로그인 관련 동작을 담당하는 서버 요청을 받는 주소입니다.
해당 주소가 아닌 도메인만 넣으시면 정상 동작하지 않습니다.
추가 항목 동의 받기 구현 이전에 카카오 로그인을 구현하셨을 거라,
일반적인 로그인 케이스를 위한 redirect uri는 이미 등록하여 사용하고 계실 것 같고요.
추가 항목 동의 받기를 위한 redirect uri도 따로 등록하고 구현하셔야 정상 동작합니다.
제가 완전 초보라서 잘 모르겠어요, 어떤 주소를 redirect uri로 등록해야할까요?
https://localhost.com 이것은 이전에 사용해서 안된다는 말씀인가요?
나름 다른 주소도 넣어보았는데 이전처럼 로그인만 되고 '사이트에 연결 할 수 없음’페이지가 뜹니다ㅠ
나에게 메시지 보내기를 하고 싶습니다,
주소만 바꿔서 해결되는 부분은 아닙니다.
로그인을 구현하는 데 어려움이 있으시다면 카카오톡 메시지 API가 아닌 카카오링크 API를 사용해 보세요.
두 API의 차이는 가이드를 참고해 주세요.
감사합니다. 성공했습니다ㅠㅠ