본문 바로가기

프로그래밍

(Python) 네이버톡톡, 카카오챗봇 메시지 2개 이상 동시에 보내기(여러 개 보내기)

공식 메뉴얼을 보면 메시지를 하나만 보낼 수 있다고 나온다.

근데 채팅하다보면 이미지랑 텍스트를 동시에 보내는 경우도 있지 않은가?

 

원리는 간단하다.

 

카카오 챗봇의 경우 "outputs" 자체가 배열 형태이므로

json 배열로 전단해주면 된다.

 

#텍스트 혹은 그림 하나만 보낼 수 있는 경우

res = {
        "version":"2.0",
        "template": {
            "outputs" : [
                {
                    "simpleText" : {
                        "text" :answer
                    }
                }
            ]
        }
    }

 

#텍스트와 그림 혹은 그림과 텍스트 두 개 이상 보내기

res = {
            "version":"2.0",
            "template": {
                "outputs" : [
                    {
                        "simpleImage" : {
                            "imageUrl" : '이미지url', 
                            "altText" : "Hello"
                        }
                    }, 
                    {
                        'simpleText' : {
                            'text' : '안녕하세요'
                        }
                    }
                ]
            }
        }​

 

 

 

그렇다면 네이버는 어떨까?

네이버는 아쉽게도 post 메소드를 두 번 호출해줘야 한다.

    #텍스트
    data = {
        'event' : 'send',
        'user' : user_key,
        "imageContent" : {
            "imageUrl" : img
        }
        
    }
    
    message = json.dumps(data)
    #텍스트 전송(post 메소드 통하여)
    response = requests.post('https://gw.talk.naver.com/chatbot/v1/event', 
                            headers=headers, data=message)
    #이미지
    data = {
        'event':"send",
        'user':user_key,
        'textContent':{
            "text":userMsg
        }
    }
    #이미지 전송
    message = json.dumps(data)
    response = requests.post('https://gw.talk.naver.com/chatbot/v1/event', headers=headers, data=message)

 

하나씩만 보내야 하는건가 좌절하기도 하고

방법을 몰라 부끄럽기도 했는 데 막상 해보니 어렵지 않다.

이거보다 더 좋은 방법을 알고 계시는 분들은 답글로 알려주세요 ㅠㅠ