안녕하세요. 저는 카카오SDK를 앱에 붙일려고 하는 안드로이드 개발자인데요.
리눅스에서는 모르겠으나 윈도우에서 해쉬 키 값을 만드는데 문제가 있네요.
이거 때문에 하루동안 삽질한거 생각하면 분통 터져서 이렇게 글을 올려봅니다.
분명 카카오SDK 가이드에 따르면 해쉬 키 값을 만들 때 다음과 같이 하라고 나와 있습니다.
keytool -exportcert -alias androiddebugkey -keystore <debug_keystore_path> -storepass android -keypass android | openssl sha1 -binary | openssl base64
그래서 위의 명령대로 제꺼의 debug.keystore를 적용해 보니 다음과 같은 값이 나옵니다.
hash key : GIik3LUs3Vtn0mOSEWPlal7jAJM=
하지만 위의 키는 전혀 엉뚱한 해쉬키 값입니다.
카톡 내부 인증과정은 위에서 나온 해쉬키를 카톡서버로 전송하고 있지 않단걸 파악하고
그래서 찾아본 결과 스택 오버플로우는 다음과 같이 해쉬 키 값을 만들라고 합니다.
웹링크 : http://stackoverflow.com/questions/5306009/facebook-android-generate-key-hash
In order to generate key hash you need to follow some easy steps.
-
Download Openssl from: here.
-
Make a openssl folder in C drive
-
Extract Zip files into this openssl folder created in C Drive.
-
Copy the File debug.keystore from .android folder in my case (C:\Users\SYSTEM.android) and paste into JDK bin Folder in my case (C:\Program Files\Java\jdk1.6.0_05\bin)
-
Open command prompt and give the path of JDK Bin folder in my case (C:\Program Files\Java\jdk1.6.0_05\bin).
-
Copy the following code and hit enter
keytool -exportcert -alias androiddebugkey -keystore debug.keystore > c:\openssl\bin\debug.txt
-
Now you need to enter password, Password = android.
-
If you see in openssl Bin folder, you will get a file with the name of debug.txt
-
Now either you can restart command prompt or work with existing command prompt
-
get back to C drive and give the path of openssl Bin folder
-
copy the following code and paste
openssl sha1 -binary debug.txt > debug_sha.txt
-
you will get debug_sha.txt in openssl bin folder
-
Again copy following code and paste
openssl base64 -in debug_sha.txt > debug_base64.txt
-
you will get debug_base64.txt in openssl bin folder
-
open debug_base64.txt file Here is your Key hash.
보시면 아시겠지만 순차적으로 키값을 파일로 쓰고 그것을 변환하는 과정입니다.
위의 처럼 순차적으로 만든 것과 카카오톡 매뉴얼에 | (or) 연산을 통해서 만든값은
전혀 다릅니다. 그러니 카카오톡 관계자분께서는 내용 확인 좀 부탁드릴께요.