적절한 카카오톡 서비스에 대한 문의

안녕하세요.

아래와 같은 형태의 URL을 포함하는 알림 메시지를 전달하는 서비스를 만들고 싶은데요.

카카오에서 제공하는 여러 종류의 API 서비스 중 (카카오링크, 비지니스 등)
어떤 제품을 선택해야하는지 문의 드립니다.

  • 목적 : 연산 결과 개별 제공
  • 상세 내용:
    1. 카카오톡 사용자는 연산을 서버에 요청 (카카오톡을 통해서 하면 좋겠지만, 개인 웹 서버가 있음)
    2. 서버에서 연산이 완료되면 해당 사용자에게 카카오톡을 이용하여 결과를 리포팅

1번에 의해 등록된 것은 2번에서 자동으로 개인서버에 의해 연산된 후 카카오톡 메시지로 간단한 결과+URL(서버 내 결과 URL)을 전달.

카카오톡 메시지는 연산을 요청한 개별 사용자에게 발송됨.

발송 건수가 많지는 않을 예정이라 최대한 무료로 사용할 수 있는 옵션을 이용하고 싶습니다.

바쁘시겠지만 답변 주시면 감사하겠습니다.

(혹시 다른 카테고리 설정이 잘못되었다면 말씀해주세요. 수정하겠습니다.)

안녕하세요.

(1) 디벨로퍼스에서 제공하는 카카오톡 공유하기(구 카카오링크)는 사용자가 직접 공유를 수행해야합니다.
(2) 디벨로퍼스에서 제공하는 메시지API는 앱내 이용자간 소셜활동을 위해 제공기때문에 발송횟수와 조건의 제약이 있습니다.

친구 api와 피커, 메시지 api 사용을 위한 체크 리스트

1번 연산 요청이 카카오 로그인한 유저가 하는 액션이고 서버 처리 후,
2번 결과를 요청한 유저가 받는 것이라면, 나에게 메시지 보내기 기능을 사용하시면 좋을 것 같습니다.
(참고로, 나에게 메시지 보내기는 전송횟수에 제한이 없으나 전송해도 카카오톡 알림이 뜨지는 않습니다.)

카카오톡 메시지: REST API | Kakao Developers 카카오톡 메시지: REST API

@tim.l 님, 빠른 답변 감사합니다.

A, B, C, D, E 가 해당 서비스를 사용한다고 예를 들면

  1. A가 서버에 연산 수행을 요청하고
    요청 시, 연산 완료 시점에 리포팅을 받을 친구를 선택해서 입력함. (ex. D,E)
  2. 서버에서 연산이 완료되면 A가 입력했던 정보를 바탕으로 D, E에 서버가 메시지를 보냄.

이라서, 우선 제안주신 나에게 메시지 보내기 기능은 취지에 맞지 않는 것 같습니다.
하지만 메시지 API는 하루에 20건 발송이 가능하므로 적절한 것으로 보입니다.

여기서, 메시지 API를 사용한다는 가정으로 추가 질문이 있는데요.

  1. A가 서버에 연산 요청 시, A, D, E를 수신자로 지정할 경우에 A, D, E는 메시지 발신자가 A인 것으로 인식이 되나요?
  2. 메시지 API를 보면 서버는 A의 access token이 필요할 것 같은데요.
    A가 서비스 등록 과정에서 access token을 발급 받기 위한 code는 전달 하면 될 것으로 보이는데,
    이 유효 기간이 2달 정도 되어 보입니다. (refresh token의 만료)
    이후에는 A는 token발급을 위한 code를 어떻게 전달을 해야하나요? (이미 등록된 상태인데…)

문의 내용이 좀 정리가 잘 안된 것 같아서 답변해주실 수 있을지 걱정이네요.^^;;

  1. A가 서버에 연산 요청 시, A, D, E를 수신자로 지정할 경우에 A, D, E는 메시지 발신자가 A인 것으로 인식이 되나요?

네, 발신자를 A로 인식하나 당사자인 A는 친구에게 보내기로 발송할 수 없고 나에게 보내기 API를 사용하셔야합니다.

  1. 메시지 API를 보면 서버는 A의 access token이 필요할 것 같은데요.

이렇게 생각하시면 좋을 것 같습니다.

메시지를 발송하기 위해 액세스 토큰이 필요한 것이라기보다
카카오 로그인한 유저만 메시지발송할 수 있고, 카카오 로그인하면 액세스토큰을 발급 받을 수 있습니다.

(1) 카카오 로그인은 인가요청->토큰발급->사용자정보조회 순으로 진행하셔야 디벨로퍼스앱과 로그인한 유저가 "연결"되고
(2) 필요한 시점에 “친구목록조회”, “메시지발송” 권한에 대한 추가동의도 해야합니다.

위 (1), (2) 절차는 발신자와 수신자 모두 수행해야 메시지 발송 가능합니다.
자세한 내용은 아래 체크리스트 참고 해주세요.

친구 api와 피커, 메시지 api 사용을 위한 체크 리스트

또한번 빠른 답변 감사합니다!
바쁘시겠지만 아래 내용 추가로 문의 드립니다.

카카오 로그인한 유저만 메시지발송할 수 있고, 카카오 로그인하면 액세스토큰을 발급 받을 수 있습니다.

이 부분에서 로그인은 A 사용자의 로그인은 A사용자의 PC 또는 폰에서 웹브라우저, 별도의 App에서 발생 시킬 수 있을 것 같은데요. 그렇게 되면 "연결"되는 것이고, “친구목록조회”, “메시지발송”과 같은 권한에 대한 추가 동의도 된 상태라고 했을때.

메시지를 발송하는 주체는 A의 PC나 폰의 웹브라우저가 아닌, 서버가 되어야 하는데요.
이 경우에는 A가 메시지를 발생 시키기 위해 필요한 정보들 (가령 token과 친구 목록)을 서버에 전달해 놓고 이후에 연산이 완료되면 서버가 미리 전달 받은 내용을 기반으로 카카오톡에 요청하면 되는 절차가 맞죠?

결국 추가 문의에서 제가 궁금한 것은
A가 로그인 및 추가 동의한 시점 외에는
A의 PC나 웹브라우저를 더 이상 쓰지 않고 서버에서 미리 전달 받은 정보를 기반으로 메시지를 보낼 수 있는지에 대한 여부 입니다.

메시지를 발송하는 주체는 A의 PC나 폰의 웹브라우저가 아닌, 서버가 되어야 하는데요.
이 경우에는 A가 메시지를 발생 시키기 위해 필요한 정보들 (가령 token과 친구 목록)을 서버에 전달해 놓고 이후에 연산이 완료되면 서버가 미리 전달 받은 내용을 기반으로 카카오톡에 요청하면 되는 절차가 맞죠?

카카오로그인한 A가 카카오와 무관하게 서버에 연산 요청하고, 말씀하신것 처럼 필요한 정보들을 연산과 함께 서버캐시했다가
서버에서 연산이 끝나면 발송하는 것은 문제 없어보입니다.

A가 로그인 및 추가 동의한 시점 외에는
A의 PC나 웹브라우저를 더 이상 쓰지 않고 서버에서 미리 전달 받은 정보를 기반으로 메시지를 보낼 수 있는지에 대한 여부 입니다.

API호출 자체가 일반적으로 서버에서 진행되므로 말씀하신 내용 가능합니다.


수신자 D, E도 카카오 로그인으로 최초 1회 "연결"되어야하고 권한동의도 해야하는 것 인지하고 계실까요?
(이부분을 처리하지 않아서 메시지 발송 못하는 경우가 많아, 다시한번 확인차 여쭤봅니다.)