2014-03-13 3 views
1

Facebook SDK에서 HelloFacebookSample을 가져 오려고하는데 문제가 있습니다. 포스트 상태 업데이트는 멋지게 보이는 페이스 북 대화 상자를 가져 오지만 공유 버튼을 누르면 "(# 404) 키 해시 XXX-XXXX가 저장된 키 해시와 일치하지 않습니다."라는 오류가 나타납니다. 나는 내 과정에서 내가 뭘 잘못하고 있는지 알고 싶다. 여기 내가 한 일이있다.HelloFacebookSample이 작동하지 않습니다. Facebook SDK 업데이트 상태 : Android

1) keytool -exportcert -alias androiddebugkey -keystore "path"\ debug.keystore | openssl sha1 - 이진 | openssl base64

나는 cmd에서 위를 실행하고 해시 번호를 받았습니다. FB 문서에서 언급 한 모든 것이 발생했기 때문에 패스워드를 묻는 메시지가 나왔고 "android"를 사용했고 그 직후에 번호를 얻었 기 때문에 이것은 작동하는 것처럼 보였습니다.

2) 내 전화 번호를 가져 와서 "예"라는 앱을 만든 후 개발자 포털에 입력했습니다. 내가 쓴 스크린 샷이 있습니다.

enter image description here

3) 나는 다시 예제 프로젝트에 가서) 위의 스크린 샷에서 (내 개발자 포털에 일치하는 응용 프로그램 ID를 변경했습니다.

그 후 나는 그것이 좋을 것이라고 생각했습니다. 그러나 나는 아직도이 오류를 받았다. 그래서 코드 스 니펫으로 키 해시를 얻으려고했습니다. 내 onCreate에서 나는 다음을 가지고있다.

try { 
     PackageInfo info = getPackageManager().getPackageInfo(
       "com.facebook.samples.hellofacebook", 
       PackageManager.GET_SIGNATURES); 

     for (Signature signature : info.signatures) { 
      MessageDigest md = MessageDigest.getInstance("SHA"); 
      md.update(signature.toByteArray()); 
      Log.i("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT)); 
      } 
     } catch (NameNotFoundException e) { 
      Log.d(TAG, "NameNotFoundException"); 
     } catch (NoSuchAlgorithmException e) { 
      Log.d(TAG, "NoSuchAlgorithmException"); 
     } 

"NameNotFoundException"이 반환하는 것은 키가 없기 때문이다. 이것을 어떻게 작동시킬 수 있습니까? 그리고 제가 누락 된 부분은 무엇입니까? 미리 감사드립니다. 귀하의 코드는 괜찮습니다, 나는 또한 내가 프로젝트의 매니페스트 파일에서 확인 패키지 이름이 다른 com.facebook.samples.hellofacebook 있는지 확인 PackageInfo info = getPackageManager().getPackageInfo( "MY.PACKAGE.NAME.GOES.HERE", PackageManager.GET_SIGNATURES);

에서 패키지를 변경 한 후

try { 
     PackageInfo info = getPackageManager().getPackageInfo(
       "com.facebook.samples.hellofacebook", 
       PackageManager.GET_SIGNATURES); 

     for (Signature signature : info.signatures) { 
      MessageDigest md = MessageDigest.getInstance("SHA"); 
      md.update(signature.toByteArray()); 
      Log.e("KeyHash:", 
        Base64.encodeToString(md.digest(), Base64.DEFAULT)); 
     } 
    } catch (NameNotFoundException e) { 
     Log.d("NameNotFoundException", "NameNotFoundException"); 
    } catch (NoSuchAlgorithmException e) { 
     Log.d("NameNotFoundException", "NoSuchAlgorithmException"); 
    } 

NameNotFoundException가 처음으로있어

+0

해결책이 있습니까? 제발 공유 –

답변

7

이하지 않습니다 작업.

+1

좋아! 나는 이것에 대답하는 사람을 포기했다. 귀하의 답변에 정확합니다. 답변 주셔서 감사합니다. +1 – portfoliobuilder

+1

당신은 환영합니다 –

+0

흠 좋은 해시 키를 받으십시오 –

관련 문제