[faq] 친구 목록 api, 메시지 전송 api를 연동하는 과정에서 자주 겪는 에러

1. 파라미터를 잘못 넣은 경우

{"msg":"Constraints on the parameter [receiver_uuids] are unsatisfied. The input receiver id(s) is invalid format.","code":-2}
{"msg":"Constraints on the parameter [receiver_uuids] are unsatisfied. Not allowed to send a message to some of receivers.","code":-2}
{"msg":"The Parameter [receiver_uuids] cannot be null.","code":-2}
{"msg":"The Parameter [receiver_uuids] cannot be empty.","code":-2}

부적절한 receiver_uuids 를 넣은 경우에 해당합니다.
receiver_uuids 는 친구 목록 받기 API를 통해 얻은 친구의 uuid 값을 이용하셔야 합니다.
또한, 디벨로퍼스 상에 등록된 다른 앱을 통해 얻은 uuid 값은 사용할 수 없습니다.

{"msg":"Cannot contain a receiver who is identical to the sender in multicast mode.","code":-2}

발신자 본인은 수신자로 설정할 수 없습니다.

2. 사용자 동의 설정을 활성화하지 않았거나 사용자가 해당 동의 항목에 동의하지 않은 경우

{"msg":"[YOUR_APP_NAME] App disabled [friends] scopes for [FRIENDS] API on developers.kakao.com. Enable it first.","code":-3}
{"msg":"[YOUR_APP_NAME] App disabled [talk_message] scopes for [TALK_MESSAGE_SEND] API on developers.kakao.com. Enable it first.","code":-3}

친구 목록 API 또는 메시지 전송 API를 호출하기 위해서 사용자 동의가 필요합니다. [내 애플리케이션] > [제품 설정] > [카카오 로그인] > [동의항목] 에서 동의항목 설정을 해주세요.
검수 전 친구 API에서 필요로 하는 ‘서비스 내 친구목록’ 정보 제공은 '이용중 사용’만 가능하므로 REST API를 통해서 구현할 경우 추가 항목 동의 받기를 통해서 사용자 동의를 받아야 합니다.

{"msg":"insufficient scopes.","code":-402,"api_type":"FRIENDS","required_scopes":["friends"],"allowed_scopes":["profile"]}
{"msg":"insufficient scopes.","code":-402,"api_type":"TALK_MESSAGE_SEND","required_scopes":["talk_message"],"allowed_scopes":["profile","friends"]}
{'msg': 'this user does not have any scope.', 'code': -402}

위 에러는 사용자가 API를 이용하기 위해 필요한 동의항목에 동의하지 않은 경우입니다.
각 예시에대한 상세설명은 다음과 같습니다.

  • 친구목록 제공 동의를 받아야 하지만, 프로필 제공 동의만 받은 경우
  • 톡 메시지 전송 동의를 받아야 하지만, 프로필과 친구 목록 제공 동의만 받은 경우
  • 아무런 동의를 받지 않은 경우

이미 가입한 사용자는 추가 항목 동의 받기를 통해서 다시 동의받을 수 있습니다.
친구 목록 API는 검수 전에 이용 중 동의만 가능하기 때문에 REST API로 호출하는 경우 위 에러가 발생할 시 반드시 추가 항목 동의 받기를 통해서 동의받아야 합니다.

3. 팀멤버가 없어 API 호출을 할 수 없는 경우

{"msg":"permission denied to call the review api. invite to team member, first.","code":-5}

검수 전 API 호출을 앱에 등록된 팀멤버만 가능합니다. [내 애플리케이션] > [앱 설정] > [팀 관리] 에서 팀멤버를 설정해주세요.

4. 카카오톡 연동 안된 카카오계정에 메시지 발송하는 경우

{"msg":"given account is not connected to any talk user.","code":-501}

메시지API 사용 시, 전달된 UUID에 해당하는 사용자 계정이 카카오톡을 사용하는 계정이 아닌 경우 발생하는 오류 입니다.
카카오톡 연동된 계정만 메시지 발송 가능합니다.

이해하기 | Kakao Developers 이해하기 - 기능소개 > 카카오톡 메시지 API

5. API Request를 형식에 맞지 않게 잘못 한 경우

{"code":-2,"msg":"failed to parse parameter. name=template_object, stringToParse=-, paramString=-, paramStringAlias=null"}
{"code":-2,"msg":"receiver_uuids can't be null."}

필수 파라메터를 전달하지 않았을 수도 있고, x-www-form-urlencoded 형식으로 요청 하지 않은 경우

자주하는 실수,
(1) Json 형태로 파라메터 전달
(2) x-www-form-urlencoded 형식이 아닌 Body Data 형태로 파라메터 전달


*To read this post in English, click Errors you may encounter when calling the Messaging API and the Retrieving list of friends API

1개의 좋아요