본문 바로가기

[Android] 카카오톡 로그인 - 1

by 마스터누누 2017. 4. 19.
728x90
반응형

카카오톡 로그인 - 1


프로젝트에 카카오톡으로 로그인 하는 부분이 필요해서 구현해보기로 했다.

페이스북으로는 로그인을 구현해 보았지만 카카오톡은 처음이다.

들리는 바에 의하면 제휴를 해야지 많은 기능을 사용할 수 있다고 하는데 아직까지는 모르니까,

일단 로그인 구현에 초점을 맞춰야지.







처음으로 맥 환경에서의 실습이다. 아직 인터페이스가 익숙치 않아서 고생 꽤나 하고 있다.

아니나 다를까 드라이버가 설치되지 않아서 Run되지 않는다.

시키는대로 필요한 파일을 다운받자.


다운 받고 예만 계속 누르면 설치가 완료되고 내 디바이스를 인식한다.

Empty Activity로 프로젝트를 생성후 잘 동작하는지 실행해보았다.

디바이스에서 잘 동작한다.




어플리케이션 등록




먼저, 카카오톡 개발자페이지에 접속한다.

아이디를 만들고 로그인을한다.

그리고 내 어플리에이션에 들어가 앱 만들기를 클릭, 어플리케이션을 등록한다.






등록된 어플리케이션을 클릭, 설정->일반으로 들어간다.

오른쪽 하단에 플랫폼 추가를 눌러 자신의 개발 플랫폼을 추가한다.






플랫폼을 클릭후 자신이 생성한 안드로이드 스튜디오 프로젝트의 패키지명을 입력한다.

그러면 자동으로 마켓 URL까지 입력되는 것을 확인할 수 있다.






다음으로 해시키를 입력해야한다.

해시키는 터미널에 커맨드를 입력하여 찾아낸다.





 

1
keytool -exportcert -alias androiddebugkey -keystore <debug_keystore_path> -storepass android -keypass android | openssl sha1 -binary | openssl base64
cs

커맨드는 다음과 같다.

커맨드는 내부의 <debug_keystore_path> 는 사용자 컴퓨터 마다 다르며 debug_keystore의 경로를 입력한다.


 : ~/.android/debug.keystore

 

Windows Vista Windows 7 : C:\Users\<user>\.android\debug.keystore

Windows XP  : C:\Documents and Settings\<user>\.android\debug.keystore






debug_keystore_path는 예시와 동일하게 입력하면 된다.

맥 OS의 터미널은 위와 같다.


주의할 점은, 위의 코드는 디버그용 해시키를 찾는 것이다. 

릴리즈 시, 릴리즈 해시키를 찾아 등록해야 한다.






다음으로 네이티브 키를 앱에 등록해야한다.

values에 kakao_string.xml를 생성후 키값을 등록한다.





 

1
2
3
4
<resources>
    <string name="kakao_app_key">AAAAAAAAAAAAAAAAAAAAAA</string>
</resources>
 
cs

코드는 다음과 같다.

AAA...에 네이티브 키값을 입력하면 된다.

네이티브 키값은 어플리케이션 최초 생성시 지급되며 개발자 페이지 설정->일반에서 확인할 수 있다.




 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.anew.kakao">
 
    <uses-permission android:name="android.permission.INTERNET" />
 
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".LoginActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
 
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <meta-data
            android:name="com.kakao.sdk.AppKey"
            android:value="@string/kakao_app_key" />
    </application>
 
</manifest>
cs



다음은 AndroidManifest.xml이다.

Internet에 대한 퍼미션을 추가해주고, 방금전에 생성한 네이티브 키 xml을 등록해 주도록 하자.

여기까지 진행했으면 1차 완료이다.





SDK 환경 구축


일단 기본 세팅부터 시작한다.

카카오톡의 경우 SDK 소스를 다운받을것이 아니라 bulid.gradle에 경로를 추가해줌으로써

불필요한 소스를 줄이고 어플리케이션을 가볍게 할 수 있다.

따라서 카카오톡 SDK를 bulid. gradle에 추가하는 것이 선행되어야한다.



프로젝트 창을 보면 다음과 같은 리스트가 나온다.

build.gradle이 2개 나오는데 카카오톡 개발자 페이지에서는 어떤 gradle에 추가해야하는지

명확하게 명시하지 않는다.





1
2
3
4
5
6
7
subprojects {
    repositories {
        mavenCentral()
        maven { url 'http://devrepo.kakao.com:8088/nexus/content/groups/public/' }
    }
}
 
cs

먼저 상단의 build.gradle(Project: 프로젝트명)에 다음과 같은 소스를 추가한다.





1
2
3
4
5
6
7
8
9
10
11
12
13
dependencies {
    compile group: 'com.kakao.sdk', name: 'kakaolink', version: project.KAKAO_SDK_VERSION
 
    // 카카오스토리 sdk를 사용하기 위해 필요.
    compile group: 'com.kakao.sdk', name: 'kakaostory', version: project.KAKAO_SDK_VERSION
 
    // 카카오톡 sdk를 사용하기 위해 필요.
    compile group: 'com.kakao.sdk', name: 'kakaotalk', version: project.KAKAO_SDK_VERSION
 
    // push sdk를 사용하기 위해 필요.
    compile group: 'com.kakao.sdk', name: 'push', version: project.KAKAO_SDK_VERSION
}
 
cs


다음으로 build.gradle(Module:app)에 다음과 같은 소스를 추가한다.

name에 들어가는 이름들은 자신이 사용할 모듈들이다. 개발자 페이지에 목록이 나와있다.

자신이 사용할 내용만 잘 선택해서 사용하도록 하자


다음으로 project.KAKAO_SDK_VERSION에 대한 정의를 지정해줘야한다.

project.KAKAO_SDK_VERSION 는 현재 최신 버전 SDK를 입력하면 되는데, 

일괄적으로 정의하기 위하여 gradle.property에 다음과 같은 코드를 선언한다.





1
KAKAO_SDK_VERSION=1.1.20
cs

 

 

테스트 일자 기준, 최신버전은 1.1.20이다.

상단에 나타난 노란바에 안에 Sync now 를 눌러서 적용해주면 gradle에 대한  SDK세팅이 완료된다.






XML 로그인 위젯



다음은 카카오톡 로그인  위젯이다.


 

1
2
3
4
5
6
7
8
<com.kakao.usermgmt.LoginButton
    android:id="@+id/com_kakao_login"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:layout_marginBottom="30dp"
    android:layout_marginLeft="20dp"
    android:layout_marginRight="20dp"/>
cs

 

 

페이스북 로그인과 마찬가지로 카카오톡에서 제공하는 로그인 버튼을 추가해준다.

XML은 카카오톡 개발자 페이지에 있는 소스이다.

쿠키런 등의 게임에 처음 접속 했을 때 볼 수 있는 노란 버튼이다.







테스트 화면에 로그인 버튼을 확인할 수 있다.

이를 기반으로 로그인 동작을 수행하는 Class를 만들어보도록하자



반응형

'' 카테고리의 다른 글

[일상] 이러고 있다.  (0) 2017.05.09
[일상] 주말 - 남산 한옥 마을  (0) 2017.04.22
[일상] 미로  (0) 2017.04.20
[Android] Baas - Firebase 사용법 1  (0) 2017.04.19
[Android] 카카오톡 로그인 - 2  (0) 2017.04.19

댓글