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

안녕하세요 카카오톡 알림이 왔을 때 음성으로 답장하는 앱을 개발중인데요, 메세지 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개의 좋아요

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