일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 26 | 27 | 28 | 29 | 30 |
- ar vr 차이
- rxjava hot observable
- 스택 자바 코드
- 2022 플러터 안드로이드 스튜디오
- 안드로이드 유닛테스트란
- jvm 작동 원리
- 서비스 vs 쓰레드
- android retrofit login
- rxjava cold observable
- 서비스 쓰레드 차이
- Rxjava Observable
- ANR이란
- 스택 큐 차이
- 안드로이드 라이선스 종류
- jvm이란
- rxjava disposable
- 객체
- 안드로이드 레트로핏 crud
- 클래스
- 안드로이드 os 구조
- 큐 자바 코드
- 안드로이드 유닛 테스트
- 안드로이드 라이선스
- 플러터 설치 2022
- 안드로이드 레트로핏 사용법
- 자바 다형성
- 안드로이드 유닛 테스트 예시
- android ar 개발
- 2022 플러터 설치
- 멤버변수
- Today
- Total
나만을 위한 블로그
[Android] 페이스북 로그인 API 구현 시 해시 키 구하기 본문
이 부분. 다른 것은 다 쉬운데 이 부분에서 유독 시간을 조금 잡아먹었다.
해시 키에 대해서 검색하다가 내가 본 설명들은 너무 이해가 안 가서, 다음에 똑같은 글 보고 또 고통받느니 여기에 내 방식대로 써놓을란다.
나중에 또 쓸 일 있으면 여기 보고 쓰면 되지.
1. OpenSSL 다운로드 (이거 안 깔아도 될 듯. 이걸로 뭘 해보진 않았는데 걍 메서드 때려박고 로그로 해시 키 구하면 된다.)
https://stackoverflow.com/questions/4388992/key-hash-for-android-facebook-app
스택 오버플로우에는 과거에 나와 똑같은 짓거리를 했던 사람들이 궁금해했거나 막혀서 빡쳤던 것에 대한 질문을 이미 올려두었다. 미국판 지식인임. 페이스북 로그인 API 또한 그랬다. 이미 질문 있는 거 보고 편ㅡ안
답변을 보니 OpenSSL을 다운받으라고 답변 안에 링크를 걸어놨다.
링크 들어가니 최근 릴리스가 2009년이라 써있는데....써도 되나 싶었다. 10년 전에 올라온 프로그램이 최신버전이라뇨?
일단 받으라니 받았다. 압축은 대충 다운로드 폴더에다 풀었다. 어따 하라고는 안 썼으니까 꼴리는 데 해도 문제는 없겠지. 진짜 없었다.
터미널 사용하는 코드에 openssl이라고 보였는데 터미널 써서 해시 키 구할 때 쓰는건가보다.
안 써요 안 써. 퉤퉤
2. 안드로이드 스튜디오 프로젝트에서 메서드 실행하기
위의 거지같은 OpenSSL 갖다 버리고 메서드로 해시 키를 구해보자. 편한 길 있으면 이유 없는 이상 일로 가야지.
함수는 대충 이렇게 쓰면 된다.
private void getHashKey()
{
PackageInfo packageInfo = null;
try {
packageInfo = getPackageManager().getPackageInfo(getPackageName(), PackageManager.GET_SIGNATURES);
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
if (packageInfo == null)
{
Log.e("KeyHash", "KeyHash : null");
for (Signature signature : packageInfo.signatures)
{
try {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
Log.e("KeyHash", Base64.encodeToString(md.digest(), Base64.DEFAULT));
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
}
}
}
메서드 썼으면 onCreate() 안에 꼴리는 데다 저 메서드 박아두고 실행한다.
그 다음 로그캣의 Verbose 로그만 나오게 한 뒤 검색창에 key를 입력해주면 어머나 세상에 해시키가 나와요!
28자라고 해서 28자 맞는지 세어봤는데 맞다. 괜히 복붙했다가 아니면 빡치니까 글자 수 확인해봤는데 맞으니 세상 행복.
좋아라 하고 그대로 복사해서 페이스북 로그인 API 페이지에 붙여넣고 SSO 활성화하는 스위치 버튼 눌러주고 사이트에서 복붙하라는 코드 다 복붙해서 때려박고 실행하니 페북 로긴 API가 정상 작동하더라.
아 그리고 처음에 붙여넣으면 marginTop, marginBottom 속성이 30 정도로 돼 있어서 다른 버튼 사이에 샌드위치시키면 쓸데없이 위아래로 벌어져서 보기 안 좋은데, 이 두 속성만 없애거나 10 정도로 놓으면 아주 보기가 편ㅡ안해진다.
고작 이걸로 20분이나 날려먹다니....
'Android' 카테고리의 다른 글
[Android] 안드로이드 스튜디오 프로젝트 디버그 창에서 SHA-1키 찾기 (0) | 2019.11.16 |
---|---|
[Android] Android.Manifest.xmlParseError at [row, col]:[n,n] 에러 (0) | 2019.11.15 |
[Android] FloatingActionButton(플로팅 버튼) (0) | 2019.11.13 |
[Android] 리사이클러뷰 클릭 이벤트 2 (0) | 2019.11.07 |
[Android] 리사이클러뷰 클릭 이벤트 (0) | 2019.11.07 |