카카오톡메시지 공유 keyhash mismatched 오류

29 버전에서 아직 배포전에 카카오링크 메시지 공유작업을 해놨습니다. 제꺼에서는 공유가 잘되는데,
다른폰에서 테스트하면 errorResult 401나면서 key mismatched 오류납니다.
return 값을 찍으니, 안드로이드 에서 생성해서 등록한 key값아고, caller 로 보내는 key값이 다른것같습니다.

다른 글에서 보면 google 콘솔에서 sha-1 값을 넣으면 된다고 하는데, 제꺼는 개발버전이라서 아직 google 등록전입니다.

google에 등록해야 공유가 가능한건가요?
아래는 키 생성 함수하고, 키 공유 함수입니다.

=== 키생성함수 ===
try {
PackageInfo info = getPackageManager().getPackageInfo(getPackageName(), PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md;
md = MessageDigest.getInstance(“SHA”);
md.update(signature.toByteArray());
String something = new String(Base64.encode(md.digest(), 0));
Log.e(“two21c”, “keyhash값 sha1”+something);
}
} catch (Exception e) {
// TODO Auto-generated catch block
Log.e(“name not found”, e.toString());
}

==== 아래 키 공유함수 ========

KakaoLinkService.getInstance().sendDefault(Mplay2.this, params, new ResponseCallback() {
@Override
public void onFailure(ErrorResult errorResult) {
Toast.makeText(getApplicationContext(),errorResult.toString(),Toast.LENGTH_LONG).show();
Logger.e(errorResult.toString());
}

        @Override
        public void onSuccess(KakaoLinkResponse result) {
            Toast.makeText(getApplicationContext(),"링크공유성공",Toast.LENGTH_LONG).show();
            // 템플릿 밸리데이션과 쿼터 체크가 성공적으로 끝남. 톡에서 정상적으로 보내졌는지 보장은 할 수 없다. 전송 성공 유무는 서버콜백 기능을 이용하여야 한다.
        }
    });

============================

onfailure 에 찍히는 키값이 다릅니다.

@jkb1125
키생성함수 부분을 작성하신 이유는 뭔가요?
(키해시 등록이 잘 안돼서 실제로 추출되는 키해시를 로그에 남겨 확인하기 위함인가요?)

디벨로퍼스 플랫폼 설정에 테스트할 앱 빌드에 사용되는 모든 키해시를 등록하셔야 합니다.
구글 콘솔 sha-1 도 base64 인코딩해서 등록하시고
debug.keystore
별도의 key를 사용하고 계시다면 그것도 추출해서 모두 등록해야 합니다.

카카오링크 공유하기 기능 사용하려면, android 해쉬키 카카오 개발자센터 어플관리에 등록해야 하잖아요?
그래서 해시키 가져와서 등록하려고 추출함수 만든겁니다.
이걸로 사용하면 안되는건가요?

말씀하신데로 모든키를 등록하니되네요.

디버그키만 등록한게 되서, 저는되는데 다른사람은 안되는거였습니다.
release 키도 등록하니 되네요. 감사합니다.

1개의 좋아요