[Flutter]카카오 메시지 공유하기
보통 Flutter에서 무언가를 공유하고 싶으면 어떻게 할까?
가장 흔한 방법은 Share라이브러리를 사용 하는 것이다. 내가 개발하는 앱도 이 라이브러리를 활용해서 사용자들에게 공유하고 있다(+ remote_config로 공유내용을 활용!)
우리가 무언가를 공유한다면, 가장 흔하게 사용하는 채널이 한국인은 카카오톡이기 때문에, 카카오톡 디벨로퍼에서는 카카오톡으로 공유할 때, 카카오 메시지 템플릿이라는 것을 활용해 이쁘게 공유할 수 있도록 지원하고 있다.
오늘은 이 카카오 메시지 템플릿을 사용하는 법에 대해 알아보자!
먼저 플러터에서 카카오 메시지를 사용하려면, kakao_flutter_sdk 라이브러리르 사용해야 한다. 원래는 개인이 운영하던 라이브러리였는데, 개발자가 카카오로 입사하면서(사실여부 모름) 카카오 공식 라이브러리가 됐다는 말이 있다 ㅋㅋㅋ
여담을 하나 하자면, 내 경우 이 라이브러리를 쓰기 전 문제가 하나 있었는데, 기존에 카카오 로그인 기능을 활용하는 다른 카카오 라이브러리가 있었기 때문에, 카카오와 관련된 라이브러리가 2개가 되어버리는 상황이 생겼다. 이참에 카카오 로그인도 공식 라이브러리로 옮겨타자! 싶어서 생각보다 큰 볼륨의 작업이 되었다.
그럼 카카오 메시지를 만들어보자!
일단 공유할 카카오 메시지 템플릿을 만들기 위해선 카카오 디벨로퍼에 앱이 당연히 등록되어 있어야 한다.
제품설정 - 메시지 화면에서 메시지 템플릿 빌더 바로가기 버튼을 누른다.
그리고 템플릿 만들기 버튼을 통해 공유시 나올 템플릿을 만들어 주면 된다. 솔직히 너무 간단하고 쉬워서 조금만 깨작거리면 할 수 있다!
그리고 버튼 항목에 공통 링크라는 것이 있는데, 이건 버튼을 눌렀을 때, 어떤 화면으로 연결될지를 정한다.
보통 앱이 설치되있으면, 앱을 실행시키고 설치가 안되어 있으면 OS에 맞게 앱설치 화면으로 이동한다.
파라미터 값을 넣어 딥링크로 만들어내면, 앱을 실행시킬 때, 원하는 화면을 보여줄 수도 있다!
그럼 어떻게 코드를 만들 수 있을까?
아니, 내가 개발할 때는 없었는데, 카카오 디벨로퍼 문서에 flutter 연동하는 법이 생겼다!
공식문서에서 자세하게 설명해주고 있어, 내 글이 별 쓸모없어졌지만… 🥲
Future<void> share (BuildContext context) async {
if (await isKakaoTalkInstalled()) {
final Uri uri = await getKakaoMessageTemplate(userName);
await sendToKakaoTalk(uri);
} else {
//카카오톡이 안깔려 있을 때, 처리
}
}
Future<Uri> getKakaoMessageTemplate(String userName) async {
return LinkClient.instance
.customWithTalk('카카오 템플릿 id', templateArgs: {'userName': userName});
}
Future<void> sendToKakaoTalk(Uri uri) async {
await LinkClient.instance.launchKakaoTalk(uri);
}
이런식으로 만들어 봤다.
카카오톡 설치 유무를 확인하고 설치되어 있다면, 카카오템플릿을 가져와서 카카오톡을 열어 보내주기.
카카오에서도 플러터를 공식적으로 지원해 주는 만큼 플러터가 더 떡상하길 바라며~!
댓글남기기