왜 이렇게 어렵고 복잡하게 만들어 놨나요

카카오톡 API 문자 하나 보내는게 왜이러 복잡하고 어렵게 만들어 놨나요…
초보자도 사용할 수 있게…좀 쉽게 만들어 봅시다. 좀…

안녕하세요.

카카오 디벨로퍼스에서 제공하는 메시지 API가 어렵다고 하심은

(1) 카카오 로그인을 통한 발신자 수신자 동의 절차와

(2) 서비스에 가입하며 위 (1)번을 수행하고 카카오톡 친구인 경우만 발송하는 조건 때문인 것으로 사료됩니다.

이렇게 제공되는 이유는

아래 개인정보 보호법 16조와 17조에 따라 메시지 발송을 위한 친구목록 조회는 개인정보 제공에 해당되므로 반드시 동의 절차를 수반해야하며, 개인정보는 최소 수집해야하며 정보제공자에게 구체적으로 내용을 알려야하기 때문입니다.


[개인정보 보호법 제16조(개인정보의 수집 제한) 제17조(개인정보의 제공)]

개인정보 보호법

제16조(개인정보의 수집 제한) ① 개인정보처리자는 제15조제1항 각 호의 어느 하나에 해당하여 개인정보를 수집하는 경우에는 그 목적에 필요한 최소한의 개인정보를 수집하여야 한다. 이 경우 최소한의 개인정보 수집이라는 입증책임은 개인정보처리자가 부담한다.
② 개인정보처리자는 정보주체의 동의를 받아 개인정보를 수집하는 경우 필요한 최소한의 정보 외의 개인정보 수집에는 동의하지 아니할 수 있다는 사실을 구체적으로 알리고 개인정보를 수집하여야 한다. <신설 2013. 8. 6.>
③ 개인정보처리자는 정보주체가 필요한 최소한의 정보 외의 개인정보 수집에 동의하지 아니한다는 이유로 정보주체에게 재화 또는 서비스의 제공을 거부하여서는 아니 된다. <개정 2013. 8. 6.>
제17조(개인정보의 제공) ① 개인정보처리자는 다음 각 호의 어느 하나에 해당되는 경우에는 정보주체의 개인정보를 제3자에게 제공(공유를 포함한다. 이하 같다)할 수 있다. <개정 2020. 2. 4., 2023. 3. 14.>

  1. 정보주체의 동의를 받은 경우
  2. 제15조제1항제2호, 제3호 및 제5호부터 제7호까지에 따라 개인정보를 수집한 목적 범위에서 개인정보를 제공하는 경우
    ② 개인정보처리자는 제1항제1호에 따른 동의를 받을 때에는 다음 각 호의 사항을 정보주체에게 알려야 한다. 다음 각 호의 어느 하나의 사항을 변경하는 경우에도 이를 알리고 동의를 받아야 한다.
  3. 개인정보를 제공받는 자
  4. 개인정보를 제공받는 자의 개인정보 이용 목적
  5. 제공하는 개인정보의 항목
  6. 개인정보를 제공받는 자의 개인정보 보유 및 이용 기간
  7. 동의를 거부할 권리가 있다는 사실 및 동의 거부에 따른 불이익이 있는 경우에는 그 불이익의 내용
    ③ 삭제 <2023. 3. 14.>
    ④ 개인정보처리자는 당초 수집 목적과 합리적으로 관련된 범위에서 정보주체에게 불이익이 발생하는지 여부, 암호화 등 안전성 확보에 필요한 조치를 하였는지 여부 등을 고려하여 대통령령으로 정하는 바에 따라 정보주체의 동의 없이 개인정보를 제공할 수 있다. <신설 2020. 2. 4.>

그리고 정보통신망 이용촉진 및 정보보호 등에 관한 법률 50조에 따라 광고 목적의 메시지는 수반되는 정기적인 활동과 조치필요에 따라 디벨로퍼스에서 제공하는 메시지 API 광고 목적으로 사용할 수 없고 서비스내 이용자간 소셜활동이라는 목적으로 제한합니다.

(참고로, 광고 메시지 발송을 위해서는 인증된 비즈니스 채널을 개설해서 해당 채널로 비즈 메시지 발송할 수 있습니다. 이 역시, 동의 받은 경우만 발송 가능합니다.)


[정보통신망 이용촉진 및 정보보호 등에 관한 법률 제50조(영리목적의 광고성 정보 전송 제한)]

정보통신망 이용촉진 및 정보보호 등에 관한 법률

제50조(영리목적의 광고성 정보 전송 제한) ① 누구든지 전자적 전송매체를 이용하여 영리목적의 광고성 정보를 전송하려면 그 수신자의 명시적인 사전 동의를 받아야 한다. 다만, 다음 각 호의 어느 하나에 해당하는 경우에는 사전 동의를 받지 아니한다. <개정 2016. 3. 22., 2020. 6. 9.>

  1. 재화등의 거래관계를 통하여 수신자로부터 직접 연락처를 수집한 자가 대통령령으로 정한 기간 이내에 자신이 처리하고 수신자와 거래한 것과 같은 종류의 재화등에 대한 영리목적의 광고성 정보를 전송하려는 경우
  2. 「방문판매 등에 관한 법률」에 따른 전화권유판매자가 육성으로 수신자에게 개인정보의 수집출처를 고지하고 전화권유를 하는 경우
    ② 전자적 전송매체를 이용하여 영리목적의 광고성 정보를 전송하려는 자는 제1항에도 불구하고 수신자가 수신거부의사를 표시하거나 사전 동의를 철회한 경우에는 영리목적의 광고성 정보를 전송하여서는 아니 된다.
    ③ 오후 9시부터 그 다음 날 오전 8시까지의 시간에 전자적 전송매체를 이용하여 영리목적의 광고성 정보를 전송하려는 자는 제1항에도 불구하고 그 수신자로부터 별도의 사전 동의를 받아야 한다. 다만, 대통령령으로 정하는 매체의 경우에는 그러하지 아니하다.
    ④ 전자적 전송매체를 이용하여 영리목적의 광고성 정보를 전송하는 자는 대통령령으로 정하는 바에 따라 다음 각 호의 사항 등을 광고성 정보에 구체적으로 밝혀야 한다.
  3. 전송자의 명칭 및 연락처
  4. 수신의 거부 또는 수신동의의 철회 의사표시를 쉽게 할 수 있는 조치 및 방법에 관한 사항
    ⑤ 전자적 전송매체를 이용하여 영리목적의 광고성 정보를 전송하는 자는 다음 각 호의 어느 하나에 해당하는 조치를 하여서는 아니 된다.
  5. 광고성 정보 수신자의 수신거부 또는 수신동의의 철회를 회피ㆍ방해하는 조치
  6. 숫자ㆍ부호 또는 문자를 조합하여 전화번호ㆍ전자우편주소 등 수신자의 연락처를 자동으로 만들어 내는 조치
  7. 영리목적의 광고성 정보를 전송할 목적으로 전화번호 또는 전자우편주소를 자동으로 등록하는 조치
  8. 광고성 정보 전송자의 신원이나 광고 전송 출처를 감추기 위한 각종 조치
  9. 영리목적의 광고성 정보를 전송할 목적으로 수신자를 기망하여 회신을 유도하는 각종 조치
    ⑥ 전자적 전송매체를 이용하여 영리목적의 광고성 정보를 전송하는 자는 수신자가 수신거부나 수신동의의 철회를 할 때 발생하는 전화요금 등의 금전적 비용을 수신자가 부담하지 아니하도록 대통령령으로 정하는 바에 따라 필요한 조치를 하여야 한다.
    ⑦ 전자적 전송매체를 이용하여 영리목적의 광고성 정보를 전송하려는 자는 수신자가 제1항에 따른 사전 동의, 제2항에 따른 수신거부의사 또는 수신동의 철회 의사를 표시할 때에는 해당 수신자에게 대통령령으로 정하는 바에 따라 수신동의, 수신거부 또는 수신동의 철회에 대한 처리 결과를 알려야 한다.
    ⑧ 제1항 또는 제3항에 따라 수신동의를 받은 자는 대통령령으로 정하는 바에 따라 정기적으로 광고성 정보 수신자의 수신동의 여부를 확인하여야 한다.

추가로, 매우 많은 사용자가 이용하는 카카오톡의 특성상 요즘 사회문제로 대두되는 피싱 범죄에 이용하려는 시도가 있을 수 있으므로

일반 사용자로 사칭 할 수 없고 출처를 명확히 알수 있는 템플릿 형태로 제공하며 올바른 용도로 사용하는지 검수 절차를 두어 제공하다보니 다소 사용이 어려운점이 있습니다.

내부적으로 사용성 개선에 대해 고심하고 있기는 하지만 위 법령에 충족하며 초보자도 쉽게 보낼 방법이 도출되지 않아 현재와 같이 서비스 제공하며 체크리스트 제공과 데브톡 안내 및 검수 시스템으로 절차 표준화 하였으나

어쩌면, 초보자도 쉽게 보낸다는 전제가 법령에서 우려하는 사항과 배치되는 것은 아닐까도 생각해보게됩니다.

아쉽지만, 아래 메시지 API 사용을 위한 체크리스트 및 공식 가이드와 언어별 예제 참고하셔서 천천히 사용방법 살펴보시면 좋을 것 같습니다.

친구 api와 피커, 메시지 api 사용을 위한 체크 리스트
13.2. [rest api 예제] java (spring boot) - 카카오 로그인, 카카오 친구목록 조회, 메시지 발송
13.3. Python에서 rest api 호출하기 샘플 코드
13.4. [rest api 예제] php - 카카오 로그인, 카카오 친구목록 조회 및 카카오톡 메시지
13.5. [Javascript SDK 예제] 카카오 로그인, 카카오톡 공유, 채널추가
13.6. [rest api 예제] c# (asp.net core)- 카카오 로그인, 카카오 친구목록 조회, 나에게 메시지 발송
13.7. [rest api 예제] c# (asp.net 6.0 nuget library)- 카카오 로그인
13.8. [rest api 예제] node.js- 카카오 로그인, 카카오 친구목록 조회, 메시지 발송
13.9. [rest api 예제] python (Flask) - 카카오 로그인, 카카오 친구목록 조회, 메시지 발송