[sns.kakao]¶
Kakao 제품에 대한 필수 API 를 정의
환경설정¶
Kakao API를 사용하기 위해서는 아래와 같은 순서로, 프로젝트 변환 및 환경 값 설정이 필요 하다.
가. 프로젝트 변경 [Gradle 환경] 나. 카카오 라이브러리 적용 다. 카카오 개발자 계정 생성 및 API 키 획득 라. 카카오 앱 키 등록 마. gradle.properties 파일 생성 및 카카오 버전 적용 바. AndroidManifestx.xml 사. Gradle 설정
가. 프로젝트 변경¶
기존 프로젝트를 Gradle 환경으로 변경한다.
나. 프로젝트에 kakao 라이브러리 적용¶
다. 카카오 개발자 계정 생성 및 API 키 획득¶
라. 카카오 앱 키 등록¶
프로젝트 > res > values > plugin_3rd_party_kakao_string.xml 생성하고, 파일을 열어 획득한 카카오 app key를 입력 한다.
<resources> <string name="kakao_app_key">AAAAAAAAAAAAAAAAAAAAAA</string> <string name="kakao_scheme">kakaoAAAAAAAAAAAAAAAAAAAAAA</string> <string name="kakaolink_host">kakaolink</string> </resources>Note
kakao_scheme 값은, “kakao” + 획득된 kakao_app_key 값을 조합하여, 생성한다.
마. gradle.properties 파일 생성 및 적용¶
프로젝트 > gradle.properties 파일 생성
아래와 같이 SDK 정보 설정
KAKAO_SDK_GROUP=com.kakao.sdk KAKAO_SDK_VERSION=1.16.0Note
배포중인 라이브러리는 SDK 버전은 1.16.0을 기준으로 생성되었고, 필요에 따라 버전을 올려 적용한다. 만약, 버전을 올렸을때 문제 발생시, 모피어스 기술지원 게시판 을 통해 문의.
바. AndroidManifest.xml 선언 확인¶
<meta-data android:name="com.kakao.sdk.AppKey" android:value="@string/kakao_app_key"/> <activity android:name="m.client.library.plugin.thirdparty.sns.kakao.ExtendSnsKakaoStartup"> <intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE"/> <data android:host="@string/kakaolink_host" android:scheme="@string/kakao_scheme"/> </intent-filter> </activity> <activity android:name="com.kakao.auth.authorization.authcode.KakaoWebViewActivity" android:configChanges="orientation|screenSize" android:launchMode="singleTop" android:windowSoftInputMode="adjustResize"> </activity>
사. Gradle 설정¶
프로젝트 > build.gradle 적용
buildscript { repositories { jcenter() maven {url "https://maven.google.com"} maven {url "https://jcenter.bintray.com"} } dependencies { classpath 'com.android.tools.build:gradle:3.0.1' } } apply plugin: 'com.android.application' repositories { jcenter() maven {url "https://maven.google.com"} maven {url "https://jcenter.bintray.com"} maven {url 'http://devrepo.kakao.com:8088/nexus/content/groups/public/' } } android { compileSdkVersion 27 buildToolsVersion "27.0.2" sourceSets { main { manifest.srcFile 'AndroidManifest.xml' java.srcDirs = ['src'] resources.srcDirs = ['src'] aidl.srcDirs = ['src'] renderscript.srcDirs = ['src'] res.srcDirs = ['res'] assets.srcDirs = ['assets'] jniLibs { srcDir 'libs' } } debug.setRoot('build-types/debug') release.setRoot('build-types/release') } defaultConfig { multiDexEnabled true } dexOptions { preDexLibraries = false } lintOptions { checkReleaseBuilds false abortOnError false } buildTypes { release { //minifyEnabled true //proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt' } } } dependencies { compile fileTree(dir: 'mcoreLibs', include: '*.jar', exclude: ['android-support-v4.jar']) compile 'com.android.support:appcompat-v7:27.0.1' // kakao sdk compile (group: project.KAKAO_SDK_GROUP, name: 'kakaolink', version: project.KAKAO_SDK_VERSION) compile (group: project.KAKAO_SDK_GROUP, name: 'kakaotalk', version: project.KAKAO_SDK_VERSION) compile (group: project.KAKAO_SDK_GROUP, name: 'usermgmt', version: project.KAKAO_SDK_VERSION) }
Kakao API¶
Kakao 제품에 대한 3rd Party연동 기능을 제공 한다.
status Type¶
Type |
Description |
---|---|
PROCESSING |
진행 중 |
SUCCESS |
정상 처리됨 |
FAIL |
처리 중 문제가 발생함 |
Auth Type¶
카카오 인증 기능에 대한 정의
command |
Description |
---|---|
login |
로그인 |
logout |
로그아웃 |
signup |
앱 연결 |
unlink |
앱 연결해제 |
getinfo |
정보 가져오기 |
setinfo |
정보 저장하기 |
gettoken |
토큰값 가져오기 |
getapphash |
앱 해쉬값 가져오기 |
Kakao 인증 API¶
-
M.
plugin
('3rd_kakao').auth( setting)¶ Changed in version 2.0.0.
- Arguments
setting (Object) – 설정 정보
setting.command (String) – 기능 ( Auth Type )
setting.setinfovalue (Object) – 사용자 정보 셋팅 (setinfo 필수)
setting.scallback (String) – 모니터링 콜백 함수 이름 (session 필수)
setting.callback (Function) – API 결과 콜백 함수
-
M.
callback
(status, result)¶
- Arguments
status (String) – API호출 결과값
result (Object) – 3rd Party 모듈 결과 값
result.result (String) – Kakao command 결과값
- 로그인
M.plugin('3rd_kakao').auth({ command: 'login', callback:function(status, result){ console.log(result); } });- 로그아웃
M.plugin('3rd_kakao').auth({ command: 'logout', callback:function(status, result){ console.log(result); } });- 앱 연결
var params = {}; params.nickname='테스트'; params.profile_image=''; params.thumbnail_image=''; M.plugin('3rd_kakao').auth({ command: 'signup', param: params, callback:function(status, result){ console.log(result); } });Note
기본으로 추가되어 있는 사용자 정보로는 nickname, profile_image, thumbnail_image가 있습니다. 이 세개의 parmeter중 하나도 채우지 않고 요청하면, 설정 > 사용자 관리 > 앱 연동 설정 > 카카오 계정 연동 메뉴의 우선순위에 의해 카카오톡 혹은 카카오스토리 프로필이 자동으로 들어가게 됩니다. 위의 세개의 parameter 중 일부(1개 혹은 2개)만 parameter로 보내면 남은 정보는 카카오 계정 연동 우선순위에 따라 카카오톡이나 카카오스토리 정보로 채워지게 됩니다. 때문에, profile_image, thumbnail_image 중 하나만 parameter로 채우게 되면, 두 이미지가 달라질 수 있습니다(parameter로 보낸 이미지와, 카카오톡 혹은 카카오 스토리의 이미지가 다를 경우). 따라서, profile_image 혹은 thumbnail_image를 parameter로 요청할 땐 꼭 profile_image, thumbnail_image의 쌍으로 요청하는 것을 권장합니다.
- 앱 연결 해제
M.plugin('3rd_kakao').auth({ command: 'unlink', callback:function(status, result){ console.log(result); } });- 정보 가져오기
M.plugin('3rd_kakao').auth({ command: 'getinfo', callback:function(status, result){ console.log(result); } });- 정보 저장하기
var params = {}; params.nickname='테스트'; M.plugin('3rd_kakao').auth({ command: 'setinfo', param: params, callback:function(status, result){ console.log(result); } });- 토큰값 가져오기
M.plugin('3rd_kakao').auth({ command: 'gettoken', callback:function(status, result){ console.log(result); } });- 앱 해쉬값 가져오기
M.plugin('3rd_kakao').auth({ command: 'getapphash', callback:function(status, result){ console.log(result); } });
Kakao Link API¶
-
M.
plugin
('3rd_kakao').link( setting)¶ Changed in version 2.0.0.
- Arguments
setting (Object) – 설정 정보
setting.command (String) – 기능 (link:카카오톡)
setting.param (Object) – 파라메터
setting.param.text (String) – 메시지 텍스트
setting.param.Iamge (Object) – 이미지 오브젝트
setting.param.Iamge.url (String) – 이미지 URL
setting.param.Iamge.width (String) – 이미지 넓이
setting.param.Iamge.height (String) – 이미지 높이
setting.param.webLink (Object) – 웹링크 오브젝트
setting.param.webLink.text (String) – 웹링크 텍스트
setting.param.webLink.url (String) – 웹링크 URL
setting.callback (Function) – API 결과 콜백 함수
-
M.
callback
(status, result)¶ - Arguments
status (String) – API호출 결과값
result (Object) – 3rd Party 모듈 결과 값
result.result (String) – Kakao command 결과값
Example:
var params={}; params.text="메시지 전달 테스트"; params.image={}; params.image.url="http://dev.uracle.co.kr/1.jpg"; params.image.width=120; params.image.height=120; params.webLink={}; params.webLink.text="웹링크 텍스트"; params.webLink.url="www.morpheus.kr"; M.plugin('3rd_kakao').link({ param: params, callback:function(status, result){ alert(JSON.stringify(result)); } });