1.0.5 • Published 4 years ago

@actbase/react-native-kakao-link v1.0.5

Weekly downloads
13
License
MIT
Repository
-
Last release
4 years ago

카카오링크 for React Native

platforms npm npm

github issues github closed issues Issue Stats

기본설정

기본설정 부분은 KakaoSDK 시작하기(React-Native)를 참고해서 설정하시면 됩니다.

dependencies로 되어있어서 같이 설치가 됩니다.

궁금한 사항이 있는경우 카카오톡 오픈채팅 React & React-Native에서 물어보면 많은 분들이 답변해주십니다.

작업하시다가 외주 혹은 작업할 업체가 필요하면 project@trabricks.io로 메일 주시면 친절하게 안내해드립니다.

Getting started

Mostly automatic installation (RN >= 0.60)

$ npm install @actbase/react-native-kakao-link --save
$ cd ios && pod install && cd ..

Mostly automatic installation (RN <= 0.59)

$ npm install @actbase/react-native-kakao-link --save
$ react-native link @actbase/react-native-kakaosdk @actbase/react-native-kakao-link
$ cd ios && pod install && cd ..

카카오링크

카카오톡링크는 미리 정의된 메시지 템플릿을 이용하여 메시지를 전송합니다. 카카오톡링크로 보낼 수 있는 메시지 템플릿 유형은 다음과 같습니다.

자세히 보고 싶은 메시지를 클릭하세요.

카카오링크 기능 중 Custom을 제외한 나머지를 사용할 수 있습니다.

사용방법은 기존의 카카오링크와 유사하게 작성되었습니다.

사용방법

기본 템플릿 보내기

카카오링크 SDK에서는 가장 많이 쓰이는 메시지 템플릿 형태를 기본 템플릿으로 정의하고 소스코드 상에서 간편하게 생성할 수 있는 인터페이스를 제공합니다. 카카오링크 SDK에서는 기본 템플릿의 계층 구조를 효과적으로 표현하기 위하여 기본 자료형 이외에 다양한 오브젝트 클래스를 정의하고 있습니다.

Content 오브젝트

콘텐츠의 내용을 담고 있는 오브젝트입니다. 기본 템플릿에서는 모든 메시지에 하나 이상의 콘텐츠를 가지고 있습니다.

기본 템플릿에서 사용되는 콘텐츠 오브젝트는 한 개의 이미지와 제목, 설명, 링크 정보를 가질 수 있습니다.
이름설명타입필수
title콘텐츠의 타이틀stringO
link콘텐츠 클릭 시 이동할 링크 정보LinkObjectO
imageURL콘텐츠의 이미지 URLstringO
desc콘텐츠의 상세 설명stringX
imageWidth콘텐츠의 이미지 너비 (단위: 픽셀)numberX
imageHeight콘텐츠의 이미지 높이 (단위: 픽셀)numberX

Link 오브젝트

메시지에서 콘텐츠 영역이나 버튼 클릭 시에 이동되는 링크 정보 오브젝트입니다.

  • 오브젝트 내 프로퍼티 중 하나 이상은 반드시 존재해야 합니다. 아무 값도 입력하지 않으면 버튼이 보이지 않거나 클릭 시 이동하지 않을 수 있습니다.
  • 링크에 사용되는 도메인은 반드시 내 애플리케이션 설정에 등록되어야 합니다. 도메인은 개발자 웹사이트의 내 애플리케이션 - 앱 선택 - 설정 - 일반 메뉴에서 등록할 수 있습니다.
  • 링크 실행 우선순위는 (android/ios)ExecutionParams > mobileWebURL > webURL 입니다.
이름설명타입필수
webURLPC버전 카카오톡에서 사용하는 웹 링크 URLstringX
mobileWebURL모바일 카카오톡에서 사용하는 웹 링크 URLstringX
androidExecutionParams안드로이드 카카오톡에서 사용하는 앱 링크 URL에 사용될 파라미터.stringX
iosExecutionParamsiOS 카카오톡에서 사용하는 앱 링크 URL에 사용될 파라미터.stringX

Social 오브젝트

좋아요 수, 댓글 수 등의 소셜 정보를 표현하기 위해 사용되는 오브젝트입니다.

5개의 속성 중 최대 3개만 표시해 줍니다. 우선순위는 Like > Comment > Shared > View > Subscriber 입니다.
이름설명타입필수
likeCount콘텐츠의 좋아요 수numberX
commentCount콘텐츠의 댓글 수numberX
sharedCount콘텐츠의 공유 수numberX
viewCount콘텐츠의 조회 수numberX
subscriberCount콘텐츠의 구독 수numberX

CommerceDetail 오브젝트

가격 정보를 표현하기 위해 사용되는 오브젝트입니다.

이름설명타입필수
regularPrice정상가격numberO
discountPrice할인된 가격numberX
discountRate할인율numberX
fixedDiscountPrice정액 할인 가격numberX

Button 오브젝트

메시지 하단에 추가되는 버튼 오브젝트입니다.

이름설명타입필수
title버튼의 타이틀stringO
webURLPC버전 카카오톡에서 사용하는 웹 링크 URLstringX
mobileWebURL모바일 카카오톡에서 사용하는 웹 링크 URLstringX
androidExecutionParams안드로이드 카카오톡에서 사용하는 앱 링크 URL에 사용될 파라미터.stringX
iosExecutionParamsiOS 카카오톡에서 사용하는 앱 링크 URL에 사용될 파라미터.stringX

피드 템플릿 보내기

1. 이미지 영역: 최대 1장, 최소 200px * 200px이상, 2MB이하
2. 제목/설명 영역: 최대 4줄 표시 (제목, 설명 각각 2줄 표시)
3. 소셜 영역: 최대 3개 표시 (순서: 좋아요 > 댓글 > 공유 > 조회 > 구독)
4. 버튼 영역: 최대 2개 표시, 버튼명 8자 이하 권장

기본 템플릿으로 제공되는 피드 템플릿은 하나의 콘텐츠와 하나의 기본 버튼을 가집니다. 소셜 정보를 추가할 수 있으며 임의의 버튼을 설정할 수도 있습니다.

카카오링크 SDK에서는 다음과 같은 형태의 피드 템플릿 클래스를 사용합니다.

이름설명타입필수
content메시지의 메인 콘텐츠 정보ContentObjectO
social콘텐츠에 대한 소셜 정보SocialObjectX
buttonTitle기본 버튼 타이틀("자세히 보기")을 변경하고 싶을 때 설정stringX
buttons버튼 목록. 버튼 타이틀과 링크를 변경하고 싶을때, 버튼 두개를 사용하고 싶을때 사용ButtonObject[]X

buttonTitle, buttons 모두 있을 경우 buttons가 사용됩니다. 둘 다 주어지지 않았을 때에는 기본 타이틀과 content에 있는 link정보로 버튼 하나가 구성됩니다.

import KakaoSDK from '@actbase/react-native-kakaosdk';

...

KakaoSDK.link().sendFeed({
  content: {
    title: '디저트 사진',
    desc: '아메리카노, 빵, 케익',
    imageURL: 'http://mud-kage.kakao.co.kr/dn/NTmhS/btqfEUdFAUf/FjKzkZsnoeE4o19klTOVI1/openlink_640x640s.jpg',
    link: {
      webURL: 'https://developers.kakao.com',
      mobileWebURL: 'https://developers.kakao.com',
    },
  },
  social: {
    likeCount: 10,
    commentCount: 20,
    sharedCount: 30,
    viewCount: 40,
  },
  buttons: [{
    title: '앱에서 보기',
    webURL: 'https://developers.kakao.com',
    mobileWebURL: 'https://developers.kakao.com',
    androidExecutionParams: 'key1=value1',
    iosExecutionParams: 'key1=value1',
  }],
})
.then(r => console.log('success'))
.catch(e => console.log(e));

리스트 템플릿 보내기

1. 헤더 영역
2. 아이템 리스트 영역: 최대 3개 표시
3. 제목/설명 영역: 최대 3줄 표시 (제목 2줄, 설명 1줄 표시)
4. 이미지 영역: 최소 200px * 200px이상, 2MB이하
5. 버튼 영역: 최대 2개 표시, 버튼명 8자 이하 권장

리스트 템플릿은 메시지 상단에 노출되는 헤더 타이틀과, 콘텐츠 목록, 버튼 등으로 구성됩니다. 헤더와 콘텐츠 각각의 링크를 가질 수 있습니다. 피드 템플릿과 마찬가지로 하나의 기본 버튼을 가지며 임의의 버튼을 설정할 수 있습니다.

이름설명타입필수
headerTitle리스트 상단에 노출되는 헤더 타이틀stringO
headerLink헤더 타이틀 내용에 해당하는 링크 정보LinkObjectO
contents리스트에 노출되는 콘텐츠 목록. 최소 2개, 최대 3개ContentObject[]O
buttonTitle기본 버튼 타이틀("자세히 보기")을 변경하고 싶을 때 설정stringX
buttons버튼 목록. 버튼 타이틀과 링크를 변경하고 싶을때, 버튼 두개를 사용하고 싶을때 사용.(최대 2개)ButtonObjectX

buttonTitle, buttons 모두 있을 경우 buttons가 사용됩니다. 둘 다 주어지지 않았을 때에는 기본 타이틀과 content에 있는 link정보로 버튼 하나가 구성됩니다.

import KakaoSDK from '@actbase/react-native-kakaosdk';

...

KakaoSDK.link().sendList({
  headerTitle: 'WEEKELY MAGAZINE',
  headerLink: {
    webURL: 'https://developers.kakao.com',
    mobileWebURL: 'https://developers.kakao.com',
  },
  buttons: [{
    title: '웹에서 보기',
    webURL: 'https://developers.kakao.com',
    mobileWebURL: 'https://developers.kakao.com',
  }, {
    title: '앱에서 보기',
    webURL: 'https://developers.kakao.com',
    mobileWebURL: 'https://developers.kakao.com',
    androidExecutionParams: 'key1=value1',
    iosExecutionParams: 'key1=value1',
  }],
  contents: [{
    title: '자전거 라이더를 위한 공간',
    desc: '매거진',
    imageURL: 'http://mud-kage.kakao.co.kr/dn/QNvGY/btqfD0SKT9m/k4KUlb1m0dKPHxGV8WbIK1/openlink_640x640s.jpg',
    link: {
      webURL: 'https://developers.kakao.com',
      mobileWebURL: 'https://developers.kakao.com',
    },
  }, {
    title: '비쥬얼이 끝내주는 오레오 카푸치노',
    desc: '매거진',
    imageURL: 'http://mud-kage.kakao.co.kr/dn/boVWEm/btqfFGlOpJB/mKsq9z6U2Xpms3NztZgiD1/openlink_640x640s.jpg',
    link: {
      webURL: 'https://developers.kakao.com',
      mobileWebURL: 'https://developers.kakao.com',
    },
  }, {
    title: '감성이 가득한 분위기',
    desc: '매거진',
    imageURL: 'http://mud-kage.kakao.co.kr/dn/NTmhS/btqfEUdFAUf/FjKzkZsnoeE4o19klTOVI1/openlink_640x640s.jpg',
    link: {
      webURL: 'https://developers.kakao.com',
      mobileWebURL: 'https://developers.kakao.com',
    },
  }],
});

위치 템플릿 보내기

1. 이미지 영역: 최대 1장, 최소 200px * 200px이상, 2MB이하
2. 제목/설명 영역: 최대 4줄 표시 (제목, 설명 각각 2줄 표시)
3. 소셜 영역: 최대 3개 표시 (순서: 좋아요 > 댓글 > 공유 > 조회 > 구독)
4. 버튼 영역: 최대 2개 표시, 버튼명 8자 이하 권장

위치 템플릿은 지도 표시에 사용되는 주소 정보와 해당 위치를 설명할 수 있는 콘텐츠 오브젝트로 구성됩니다. 왼쪽 하단에 기본 버튼, 오른쪽 하단에 지도를 보여주기 위한 "위치 보기" 버튼이 추가됩니다. "위치 보기" 버튼을 클릭하면 카카오톡 채팅방 내에서 바로 지도 화면으로 전환하여 해당 주소의 위치를 확인할 수 있습니다

이름설명타입필수
content위치에 대해 설명하는 콘텐츠 정보ContentObjectO
address공유할 위치의 주소 예) 경기 성남시 분당구 판교역로 235stringO
addressTitle카카오톡 내의 지도 뷰에서 사용되는 타이틀 예) 카카오판교오피스stringX
social메인 콘텐츠의 부가 소셜 정보SocialObjectX
buttonTitle기본 버튼 타이틀("자세히 보기")을 변경하고 싶을 때 설정stringX
buttons버튼 목록. 기본 버튼의 타이틀 외에 링크도 변경하고 싶을 때 설정. (최대 1개, 오른쪽 "위치 보기" 버튼은 고정)ButtonObjectX
import KakaoSDK from '@actbase/react-native-kakaosdk';

...

KakaoSDK.link().sendLocation({
  address: '성남시 분당구 판교역로 235',
  addressTitle: '카카오 판교오피스',
  content: {
    title: '카카오 판교오피스',
    desc: '카카오 판교오피스 위치입니다.',
    imageURL: 'http://www.kakaocorp.com/images/logo/og_daumkakao_151001.png',
    link: {
      webURL: 'https://developers.kakao.com',
      mobileWebURL: 'https://developers.kakao.com',
    },
  },
})
.then(r => console.log('success'))
.catch(e => console.log(e));

커머스 템플릿 보내기

1. 이미지 영역: 최대 1장, 최소 200px * 200px이상, 2MB이하
2. 할인된 가격 영역
3. 정상가격 영역
4. 할인율 영역
5. 제품명 영역: 최대 2줄 표시
6. 버튼 영역: 최대 2개 표시, 버튼명 8자 이하 권장

기본 템플릿으로 제공되는 커머스 템플릿은 하나의 콘텐츠, 커머스 상세와 하나의 기본 버튼을 가집니다. 추가로 임의의 버튼을 설정할 수도 있습니다.

이름설명타입필수
content메시지의 메인 콘텐츠 정보ContentObjectO
commerce상품에 대한 가격 정보CommerceDetailObjectO
buttonTitle기본 버튼 타이틀("자세히 보기")을 변경하고 싶을 때 설정stringX
buttons버튼 목록. 버튼 타이틀과 링크를 변경하고 싶을때, 버튼 두개를 사용하고 싶을때 사용.(최대 2개)ButtonObject[]X
import KakaoSDK from '@actbase/react-native-kakaosdk';

...

KakaoSDK.link().sendCommerce({
  contents: {
    title: 'Ivory long dress (4 Color)',
    imageURL: 'http://mud-kage.kakao.co.kr/dn/RY8ZN/btqgOGzITp3/uCM1x2xu7GNfr7NS9QvEs0/kakaolink40_original.png',
    link: {
      webURL: 'https://developers.kakao.com',
      mobileWebURL: 'https://developers.kakao.com',
    },
  },
  commerce: {
    regularPrice: 208800,
    discountPrice: 146160,
    discountRate: 30,
  },
  buttons: [{
    title: '구매하기',
    webURL: 'https://style.kakao.com/main/women/contentId=100/buy',
    mobileWebURL: 'https://m.style.kakao.com/main/women/contentId=100/buy',
  }, {
    title: '앱에서 보기',
    webURL: 'https://style.kakao.com/main/women/contentId=100/share',
    mobileWebURL: 'https://m.style.kakao.com/main/women/contentId=100/share',
    androidExecutionParams: 'contentId=100&share=true',
    iosExecutionParams: 'contentId=100&share=true',
  }],
});

텍스트 템플릿 보내기

이름설명타입필수
text최대 200자의 텍스트 정보stringO
link해당 컨텐츠 클릭 시 이동 할 링크 정보LinkObjectO
buttonTitle기본 버튼 타이틀("자세히 보기")을 변경하고 싶을 때 설정stringX
buttons메시지 하단에 추가되는 버튼 목록. 버튼 타이틀과 링크를 변경하고 싶을때, 버튼 두개를 사용하고 싶을때 사용. 최대 2개ButtonObject[]X
import KakaoSDK from '@actbase/react-native-kakaosdk';

...

KakaoSDK.link().sendText({
  text: 'Text',
  link: {
    webURL: 'https://developers.kakao.com',
    mobileWebURL: 'https://developers.kakao.com',
  },
  buttonTitle: 'This is button',
})
.then(r => console.log('success'))
.catch(e => console.log(e));

스크랩 템플릿 보내기

1. 이미지 영역: 최대 1장, 최소 200px * 200px이상, 2MB이하
2. 제목/설명 영역: 최대 4줄 표시 (제목, 설명 각각 2줄 표시)
3. 버튼 영역: 최대 1개 표시, 버튼명 8자 이하 권장
4. A. og:image / B. video:duration, music:duration / C. og:title, og:description / D. og:site_name

웹 사이트 콘텐츠를 해당 웹 페이지의 Open Graph 정보를 바탕으로 이미지, 제목, 설명, 링크를 구성하여 별도의 템플릿 생성 작업 없이 URL만으로 간편하게 전달합니다.

스크랩하려는 웹 사이트의 도메인은 반드시 내 애플리케이션 설정에 등록되어야 합니다.
도메인은 개발자 웹사이트의 [내 애플리케이션] - 앱 선택 - [설정] - [일반] 메뉴에서 등록할 수 있습니다.
import KakaoSDK from '@actbase/react-native-kakaosdk';

...

KakaoSDK.link().sendURL('https://developers.kakao.com')
.then(r => console.log('success'))
.catch(e => console.log(e));