2014-01-20 5 views
1

keytool 명령을 사용하여 Facebook 로그인을 사용하는 Android 앱의 해시 키를 생성 할 수있었습니다. 이 질문의 목적을 위해 출력 된 keytool은 "abcdefg ="입니다. 하지만 내 애플 리케이션에서 페이스 북에 로그온하려고하면 "키 해쉬 abcdefg는 저장된 키 해시와 일치하지 않는다"고 말하면서 마지막에 등호가없는 keytool에서 얻은 똑같은 정확한 키를 보여줍니다. 왜 작동하지 않는거야? 또한 복사/붙여 넣기 대신 내 Facebook 개발자 콘솔에서 수동으로 키 해시를 입력하려고하면 문자 수가 4로 나눌 수있는 키만 가져 가기 때문에 등호가없는 키는 사용하지 않습니다 (내 등호 기호 키는 28 자,없이 키는 27 자). 누군가 도울 수 있습니까?Facebook 해시 키가 작동하지 않음

답변

0
updateLanguage(getApplicationContext(), "en"); 
printHashKey(getApplicationContext(),"ur application package name here"); 

주 1 : 릴리스 키스트 아로 apk 파일을 작성하십시오. 장치에서 실행하면 keyhash가 logcat을 인쇄합니다. keyhash를 복사하여 facebook 앱 편집 설정 페이지에 놓습니다.

주 2 : 정확한 키 해시는 장치에서만 생성하십시오. keyhash를 얻기 위해 시뮬레이터를 사용하지 마십시오.

public static String printHashKey(Context context, String packagename) 
     { 

      String TAG = packagename; 
      try 
      { 
       Log.d(TAG, "keyHash: start"); 
       PackageInfo info = context.getPackageManager().getPackageInfo(TAG,PackageManager.GET_SIGNATURES); 
       for (Signature signature: info.signatures) 
       { 
        MessageDigest md = MessageDigest.getInstance("SHA"); 
        md.update(signature.toByteArray()); 
        String keyHash = Base64.encodeToString(md.digest(), Base64.DEFAULT); 
        Log.d(TAG, "keyHash: " + keyHash); 
        return keyHash; 
       } 
       Log.d(TAG, "keyHash: end"); 
      } 
      catch (NameNotFoundException e) 
      { 
       Log.d(TAG, "keyHash: name:"+e); 
      } 
      catch (NoSuchAlgorithmException e) 
      { 
       Log.d(TAG, "keyHash: name:"+e); 
      } 

      return "error"; 
     } 

     public static void updateLanguage(Context context, String code) 
     { 
      Locale locale = new Locale(code); 
      Locale.setDefault(locale); 
      Configuration config = new Configuration(); 
      config.locale = locale; 
      context.getResources().updateConfiguration(config, context.getResources().getDisplayMetrics()); 
     } 
+0

문제점에 대한 임시 해결 방법을 발견했습니다. 내 기기에서 Facebook 앱을 제거하면 키 해시를 허용 할 수 있습니다. 질문 : 내 앱에서 Facebook에 로그인하면 Facebook에 이미 기기가있는 사용자가 작동하지 않을까요? – StackOverflowMaster

+1

FB 앱을 제거하면 키 해시를 수락하지 않고 키 해시를 전송하지 않고 다른 로그인 메커니즘 (SSO 아님)을 사용하므로 액세스 토큰 유형이 달라집니다. FB app이 설치되어있는 경우 다른 사용자가 앱을 중단합니다. 키 해시를 적절하게 생성하여 앱 설정에 포함해야합니다. –

관련 문제