본문 바로가기

Language/Python

[Python] 카카오 REST API 친구에게 List 메시지 보내기

REST API에 대한 상세한 내용은 아래 KAKAO developer 사이트를 참고하자.

developers.kakao.com/

 

Kakao Developers

카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.

developers.kakao.com




 

 

 

 

 

> 아래 코드는 친구에게 LIST형의 메시지 보내기 REST API를 사용할 때 코드.

def sendToMeMessage_list(content: list):
    header = {"Authorization": 'Bearer ' + ACCESS_TOKEN}
    url = "https://kapi.kakao.com/v1/api/talk/friends/message/default/send" #api 주소


    # uuid 참고 
    # 1시간걸렸네 .. 하.. https://cocoabba.tistory.com/17

    uuid = ["친구1의 UUID 값", "친구2의 UUID 값"]
    uuidsData = {"receiver_uuids" : json.dumps(uuid)}    

    post = {
        "object_type": "list",
        "header_title": "Title",
        "header_link": {
            "web_url": "http://naver.com",
            "mobile_web_url": "http://naver.com",
            "android_execution_params" : "main",
            "ios_execution_params" : "main"
        },
        "contents" : content,
        "buttons" : [
            {
                "title" : "Button Title",
                "link" : {
                    "web_url" : "http://naver.com",
                    "mobile_web_url" : "http://naver.com",
                    "android_execution_params" : "main",
                    "ios_execution_params" : "main"
                }
            }
        ]        
    }
    data = {"template_object": json.dumps(post)}
    uuidsData.update(data)

    return requests.post(url, headers=header, data=uuidsData).status_code

 

 

 


 

 



> 위 코드에서 content에 해당하는 부분의 기본 구조는 다음과 같다.
아래 기본구조의 예시는 content에 하나의 데이터만 포함되어있기 때문에 그대로 쓰면 400 Bad Request Error가 응답되게 된다.

 

왜냐하면? 지금 하고자 하는 것은 한개의(단순 Text) 메시지가 아닌 여러개(List) 메시지를 보내는 List Object Type을 사용하고 있다. 따라서 content의 내용이 2개 이상이여야 한다.

content = []

content.append(
  {
    "title":r[0],\
    "description":r[1],\
    "image_url":"",\
    "image_width":"0",\
    "image_height":"0",\
    "link":{
      "web_url" : "http://dart.fss.or.kr/dsab001/main.do#",\
      "mobile_web_url" : "http://dart.fss.or.kr/dsab001/main.do#",\
      "android_execution_params" : "/dsab001/main.do#",\
      "ios_execution_params" : "/dsab001/main.do#"
      }
  }
)
반응형