Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

[TIL] 카카오톡 공유하기 API #15

Open
samsung-ga opened this issue Jun 26, 2022 · 0 comments
Open

[TIL] 카카오톡 공유하기 API #15

samsung-ga opened this issue Jun 26, 2022 · 0 comments

Comments

@samsung-ga
Copy link
Owner

카카오톡 메시지 보내기 API 2가지

카카오 API 중 친구나 채팅방에 카카오톡 메시지를 보내는 방법은 2가지가 있다.

  • 카카오톡 공유 API
  • 카카오톡 메시지 API

카카오톡 공유 API는 LinkAPI모듈이 제공하고 카카오톡 메시지 API는 TalkAPI모듈이 제공한다. 뿐만 아니라 메시지 API는 카카오 로그인 모듈 KakaoSDKUser, 사용자 인증 모듈 KaKaoSDKAuth, 카카오톡 모듈 KakaoSDKTalk을 모두 설치해야 한다. 아래 모듈간 의존성 사진을 보면 알 수 있다.



두 API의 차이점은 이 링크에 잘 나와있는데 간단히 정리하면 아래와 같다.

  • 카카오톡 공유 API는 카카오톡 앱에서 카카오톡이 알아서 해주기 때문에 간단하지만, 카카오톡 메시지 API는 친구 목록 가져오기 등 직접 구현해야 하는 불편함이 있다.
  • 자세한 내용은 링크의 사진을 참고하자


Marryting 프로젝트에는...

Marryting 프로젝트에는 카카오톡 공유 API를 사용한다. 단순하게 초대장을 공유하는 형태로 친구 목록을 가져와 서비스 자체 친구 목록 화면을 개발하지 않아도 될 뿐더러, 카카오톡 메시지 API는 사용 권한 신청이 필요하기 때문이다. 상대적으로 구현이 간단하며 권한 신청이 필요하지 않은 카카오톡 공유 API를 선택했다.



적용하기 🚀

최소 지원 버전

  • iOS 카카오톡 최소 버전: 5.9.8

세팅

✅ iOS 9.0 이상에서 iOS SDK를 통해 카카오톡을 실행시키는 기능을 이용하려면 Info.plist 파일에 앱 실행 허용 목록을 설정해야한다. (Privacy and Your App 참고)



✅ URL Schemes 설정하기

카카오계정을 통한 인증과 카카오톡 메시지를 통한 앱 실행을 위해 [URL Schemes] 설정을 한다. [Info] > [URL Types] > [URL Schemes] 항목에 네이티브 앱 키(Native App Key)를 kakao${NATIVE_APP_KEY} 형식으로 등록한다.



구현 방법

  1. 메시지 템플릿을 참고하여 보낼 메시지 내용 구성하기
  2. 구성한 메시지를 전달 인자로 카카오톡 공유 APi 호출하여 메시지 전송을 요청하기


구현

  1. 필요한 모듈 설정
Module Description
KakaoSDK 모든 모듈 전체 설치
KakaoSDKLink 카카오톡 공유 모듈

2. 메시지 종류 및 구성 방법 선택하기 - 메시지 [종류](https://developers.kakao.com/docs/latest/ko/message/message-template#type)를 확인 후 어떤 메시지 템플릿을 사용할 지 결정한다.
  1. 메시지 선택 후, 원하는 메시지 및 템플릿에 따라 API를 호출한다. (코드는 생략한다.)

이슈나 새로운 기능에 대한 설명은 개발 이후 추가할 예정이다.

Reference

# for free to join this conversation on GitHub. Already have an account? # to comment
Projects
None yet
Development

No branches or pull requests

1 participant