카카오톡 알림이 왔을 때 친구가 설정한 이름을 알 수는 없을까요?

안녕하세요 카카오톡 알림이 왔을 때 음성으로 답장하는 앱을 개발중인데요, 메세지 api로 등록된 친구 목록을 가져와서 메세지를 보내는 건 성공하였습니다.

근데 알림이 왔을 때 등록된 이름이 상대방이 카카오톡 가입시 등록한 이름으로 되어있지 않는 경우에는 friend.profileNickName() 과 알림에 뜨는 이름이 달라서 상대방한테 api로 메세지를 보내는 것이 불가능하더라고요…
혹시 이문제를 해결할 수 있는 방안이 있을까요?

코드는 다음과 같이 짰습니다.

override fun onNotificationPosted(sbn: StatusBarNotification) {

        val notification: Notification = sbn.notification
        val extras: Bundle = notification.extras
        val title= extras.getString(Notification.EXTRA_TITLE)
        val text = extras.getCharSequence(Notification.EXTRA_TEXT)
        val subText = extras.getCharSequence(Notification.EXTRA_SUB_TEXT)



        if (title != null) {
            receiver = title
        }
}

TalkApiClient.instance.friends { friends, error ->
                if (error != null) {
                    Log.e(TAG, "카카오톡 친구 목록 가져오기 실패", error)
                }
                else {
                    Log.d(TAG, "카카오톡 친구 목록 가져오기 성공 \n${friends!!.elements?.joinToString("\n")}")

                    if (friends.elements?.isEmpty() == true) {
                        Log.e(TAG, "메시지를 보낼 수 있는 친구가 없습니다")
                    }
                    else {
                        System.out.println(friends.elements);
                        for(friend in friends.elements!!){
                            if(receiver == friend.profileNickname){
                                var receiverUuid = friend.uuid
                                var receiverUuids: List<String> = listOf(receiverUuid) as List<String>
                                var template =text

                                TalkApiClient.instance.sendDefaultMessage(receiverUuids, template) { result, error ->
                                    if (error != null) {
                                        Log.e(TAG, "메시지 보내기 실패", error)
                                    }
                                    else if (result != null) {
                                        Log.i(TAG, "메시지 보내기 성공 ${result.successfulReceiverUuids}")

                                        if (result.failureInfos != null) {
                                            Log.d(TAG, "메시지 보내기에 일부 성공했으나, 일부 대상에게는 실패 \n${result.failureInfos}")
                                        }
                                    }
                                }
                            }
                        }

안녕하세요.

친구 목록 가져오기에서 반환되는 닉네임과 사용자가 카카오톡에 저장한 닉네임이 다를수 있습니다. 때문에 닉네임만으로 정확히 매칭 시키기는 어려울것 같습니다.

매칭대상이 없는 경우 조회된 친구목록을 보여주고 음성으로 선택할수 있는 기능을 추가 개발해보시는건 어떨까요?

좋아요 1

헉 좋은 아이디어 같습니다. 친절한 답변 감사합니다!!