========== [sns.kakao] ========== Kakao 제품에 대한 필수 API 를 정의 .. comment:: --------------- 샘플 프로젝트 --------------- .. note:: 샘플 프로젝트를 다운로드 받고, kakao app key 를 발급받아 적용 후, 테스트 가능합니다. :download:`다운로드 <../_static/api/3rdpaty_android/kakao/KakaoLinkSample.zip>`. -------------- 환경설정 -------------- * Kakao API를 사용하기 위해서는 아래와 같은 순서로, 프로젝트 변환 및 환경 값 설정이 필요 하다. .. code-block:: xml 가. 프로젝트 변경 [Gradle 환경] 나. 카카오 라이브러리 적용 다. 카카오 개발자 계정 생성 및 API 키 획득 라. 카카오 앱 키 등록 마. gradle.properties 파일 생성 및 카카오 버전 적용 바. AndroidManifestx.xml 사. Gradle 설정 가. 프로젝트 변경 ----------------- 기존 프로젝트를 Gradle 환경으로 변경한다. - `Gradle 환경 변경 `_. 나. 프로젝트에 kakao 라이브러리 적용 ---------------------------- - `3rd plugin kakao 라이브러리 적용 `_. 다. 카카오 개발자 계정 생성 및 API 키 획득 ------------------------------- - `카카오 개발자 사이트 `_. - `카카오 App Key 획득 `_. .. 네이티브 앱 키를 이용한다. 라. 카카오 앱 키 등록 ------------------------------- - 프로젝트 > res > values > plugin_3rd_party_kakao_string.xml 생성하고, 파일을 열어 획득한 카카오 app key를 입력 한다. .. code-block:: xml AAAAAAAAAAAAAAAAAAAAAA kakaoAAAAAAAAAAAAAAAAAAAAAA kakaolink .. note:: kakao_scheme 값은, "kakao" + 획득된 kakao_app_key 값을 조합하여, 생성한다. 마. gradle.properties 파일 생성 및 적용 ------------------------------ - 프로젝트 > gradle.properties 파일 생성 - 아래와 같이 SDK 정보 설정 .. code-block:: xml KAKAO_SDK_GROUP=com.kakao.sdk KAKAO_SDK_VERSION=1.16.0 .. note:: 배포중인 라이브러리는 SDK 버전은 1.16.0을 기준으로 생성되었고, 필요에 따라 버전을 올려 적용한다. 만약, 버전을 올렸을때 문제 발생시, `모피어스 기술지원 게시판 `_ 을 통해 문의. 바. AndroidManifest.xml 선언 확인 ------------------------------ .. code-block:: xml 사. Gradle 설정 ---------------- - 프로젝트 > build.gradle 적용 .. code-block:: javascript 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연동 기능을 제공 한다. .. _statusType: status Type ------------ ============ =================== Type Description ============ =================== PROCESSING 진행 중 SUCCESS 정상 처리됨 FAIL 처리 중 문제가 발생함 ============ =================== .. _AuthType: Auth Type ----------------- * 카카오 인증 기능에 대한 정의 ======================= ============= command Description ======================= ============= login 로그인 logout 로그아웃 signup 앱 연결 unlink 앱 연결해제 getinfo 정보 가져오기 setinfo 정보 저장하기 gettoken 토큰값 가져오기 getapphash 앱 해쉬값 가져오기 ======================= ============= Kakao 인증 API -------------- .. js:function:: M.plugin('3rd_kakao').auth( setting ) .. versionchanged:: 2.0.0 :param Object setting: 설정 정보 :param String setting.command: 기능 ( :ref:`AuthType` ) :param Object setting.setinfovalue: 사용자 정보 셋팅 (setinfo 필수) :param String setting.scallback: 모니터링 콜백 함수 이름 (session 필수) :param Function setting.callback: API 결과 콜백 함수 .. js:function:: callback(status, result) :param String status: API호출 결과값 :param Object result: 3rd Party 모듈 결과 값 :param String result.result: Kakao command 결과값 __ 로그인 .. code-block:: javascript M.plugin('3rd_kakao').auth({ command: 'login', callback:function(status, result){ console.log(result); } }); 로그아웃 .. code-block:: javascript M.plugin('3rd_kakao').auth({ command: 'logout', callback:function(status, result){ console.log(result); } }); 앱 연결 .. code-block:: javascript 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의 쌍으로 요청하는 것을 권장합니다. 앱 연결 해제 .. code-block:: javascript M.plugin('3rd_kakao').auth({ command: 'unlink', callback:function(status, result){ console.log(result); } }); 정보 가져오기 .. code-block:: javascript M.plugin('3rd_kakao').auth({ command: 'getinfo', callback:function(status, result){ console.log(result); } }); 정보 저장하기 .. code-block:: javascript var params = {}; params.nickname='테스트'; M.plugin('3rd_kakao').auth({ command: 'setinfo', param: params, callback:function(status, result){ console.log(result); } }); 토큰값 가져오기 .. code-block:: javascript M.plugin('3rd_kakao').auth({ command: 'gettoken', callback:function(status, result){ console.log(result); } }); 앱 해쉬값 가져오기 .. code-block:: javascript M.plugin('3rd_kakao').auth({ command: 'getapphash', callback:function(status, result){ console.log(result); } }); Kakao Link API -------------- .. js:function:: M.plugin('3rd_kakao').link( setting ) .. versionchanged:: 2.0.0 :param Object setting: 설정 정보 :param String setting.command: 기능 (link:카카오톡) :param Object setting.param: 파라메터 :param String setting.param.text: 메시지 텍스트 :param Object setting.param.Iamge: 이미지 오브젝트 :param String setting.param.Iamge.url: 이미지 URL :param String setting.param.Iamge.width: 이미지 넓이 :param String setting.param.Iamge.height: 이미지 높이 :param Object setting.param.webLink: 웹링크 오브젝트 :param String setting.param.webLink.text: 웹링크 텍스트 :param String setting.param.webLink.url: 웹링크 URL :param Function setting.callback: API 결과 콜백 함수 .. js:function:: callback(status, result) :param String status: API호출 결과값 :param Object result: 3rd Party 모듈 결과 값 :param String result.result: Kakao command 결과값 Example: .. code-block:: javascript 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)); } });