안녕하세요 사용자가 카카오톡 초대 링크를 전송 완료했을 때, 카카오 서버에서 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
감사합니다.