카카오링크 초대하기 success callback이 오지 않아 문의드립니다

안녕하세요 사용자가 카카오톡 초대 링크를 전송 완료했을 때, 카카오 서버에서 callback이 지정한 저희 서비스 url로 오지 않아 도움을 요청드립니다.

서비스 스펙

  • Frontend: Angular 11.2
  • Backend: Django Rest Framework
  • Server: S3(프론트, 웹 정적 호스팅), Amazon Elastic Beanstalk(백엔드)

다음과 같이 진행을 하고, 점검을 완료했음에도 callback이 오지 않고 있습니다.
1. 서비스 내 callback을 받을 api 작성 (로직: callback api request가 성공하면 서버 DB에 log 생성)

  • 해당 api 요청 시 authentication/authorization이 필요 없도록 셋팅 (401 방지)
  • postman에서 header에 서비스 token없이 요청을 했을 때, 성공적으로 log 생성
  • 해당 서버 api url을 카카오링크 callback url으로 등록 (오타 점검했고, 오타는 없음)

2. 프론트에서 요청 시 사용자 custom parameter 추가
프론트 javascript에서 친구 초대 요청 시 serverCallbackArgs를 다음과 같이 추가하였습니다.

  inviteFriends(userId: number): void {
    if (!this.shareUrl) {
      return;
    }
    const utmParams: string = `utm_source=app&utm_medium=referral&utm_campaign=${userId}`;
    Kakao.Link.sendDefault({
      objectType: 'feed',
      content: {
        title: '모이에서 번개로 만나자!',
        description: '친구들과 오늘 바로 모이는 번개모임 앱, 모이로 초대합니다.',
        imageUrl:
          `${environment.webUrl}/assets/icons/moi-intro.jpg`,
        link: {
          mobileWebUrl: `${this.shareUrl}?${utmParams}`,
          webUrl: `${this.shareUrl}?${utmParams}`
        },
      },
      buttons: [
        {
          title: '자세히 보기',
          link: {
            mobileWebUrl: `${this.shareUrl}?${utmParams}`,
            webUrl: `${this.shareUrl}?${utmParams}`
          },
        }
      ],
      serverCallbackArgs: { // 사용자 정의 파라미터 설정
        user_id: userId 
      }
    });
  }

참고한 문서는 다음과 같습니다.
https://developers.kakao.com/docs/latest/ko/message/js-link#set-kakaolink-callback
https://developers.kakao.com/docs/latest/ko/reference/callback#kakaolink-callback

감사합니다.

안녕하세요~
확인을 위해 앱 ID 알려주세요~


앱ID
https://developers.kakao.com/ 의 내 애플리케이션>앱 설정>요약 정보 : 기본정보에 있는 앱 ID
숫자로된 ID 입니다~
ex) 123456

628869
입니다.

확인해보니 콜백호출을 했으나 응답이 400 에러로 반환되었습니다.

방화벽 설정과 시스템 응답 가능 여부 확인 부탁드려요.
https://devtalk.kakao.com/t/if-callback-request-is-failed-firewall-setting-required/83372

답변 감사드립니다. 말씀해주신대로 확인을 해보니

  1. 현재 백엔드 framework에서는 ALLOWED_HOSTS = ['*'] 로 셋팅을 해두어서, 모든 IP 접근이 허용되어 있습니다.
  2. 기존에 callback url이 http였는데, 현재 https로 변경한 url로 수정하였습니다.

두가지 조치를 취하고 다시 한번 서비스 내에서 카카오톡으로 초대 링크를 전송해서 완료했는데, 여전히 callback이 오지 않고 있습니다. 확인 한번 부탁드리겠습니다.

안녕하세요.

아래와 같이 응답을 받았구요.

발송된 내역 동일하게 GET으로 제가 호출해보니
https://api-moi.headmost.app/api/v1/log/kakao-invite-success?CHAT_TYPE=MemoChat&user_id=16&HASH_CHAT_ID=7f24402b315fd72ebc99fe4f1f7f5e61

아래와 같은 응답을 받았습니다. 확인 부탁드려요~

{
    "status_code": 400,
    "message": "{'target': [ErrorDetail(string='이 필드의 글자 수가 15 이하인지 확인하십시오.', code='max_length')]}",
    "code": null
}

September 28th 2021, 17:18:41.941
url : https://api-moi.headmost.app/api/v1/log/kakao-invite-success
msg : [HttpRequestError 400]

September 28th 2021, 17:06:15.971
url : http://api-dev.hellowoot.co.kr:8006/api/v1/log/kakao-invite-success
msg : The HTTP(S) proxy rejected to open a connection to api-dev.hellowoot.co.kr:8006 with status code: 503 Service Unavailable [HttpRequestError]

아 해당 부분을 놓쳤었네요;; 덕분에 잘 해결되었습니다 정말 감사드립니다!

1개의 좋아요