2013-10-30 8 views
0

loggedIn 사용자의 Facebook 정보에 액세스하려고합니다. 이를 위해 필자는 다양한 문서를 읽고 해시 키 구성이 필요한데, 이는 응용 프로그램이 생성되고 Facebook App-Id를 생성하는 페이 스북의 개발자 섹션에서 필요하다는 것을 알았습니다. facebook 개발자 포털의 Native Android App 섹션을 채우기 위해 해시 키를 생성하려고했습니다. 이 같은 많은 링크를 통해 갔다 HereFacebook 해시 키 문제

하지만 해시 키가 전혀 작동하지 않습니다. 때로는 해시가 일치하지 않거나 언젠가는 페이스 북 대화를 선언하고 사라지는 경우가 있습니다.

하지만 여전히 내 기기에서 작동하지 않습니다. 그것은 에뮬레이터에서 잘 작동합니다. Mac 시스템을 사용하고 있습니다. 문제가 있습니까?

내가 누락 된 경우 아무도 안내 할 수 있습니까? 페이스 북 개발자 포털의 애플리케이션 설정에서 더 많은 것을 편집해야합니까?

답변

0

기기가 앱 설정에없는 새 키 해시를 만들기 때문입니다. 따라서 키 해시를 적절하게 업데이트해야합니다. onCreate()에서 사용하십시오.

try { 
      PackageInfo info = getPackageManager().getPackageInfo("YOUR_PACKAGE_NAME", PackageManager.GET_SIGNATURES); 
      for (Signature signature : info.signatures) { 
       MessageDigest md = MessageDigest.getInstance("SHA"); 
       md.update(signature.toByteArray()); 
       Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT)); 
       } 
     } catch (NameNotFoundException e) { 

     } catch (NoSuchAlgorithmException e) { 

     } 
+0

개방이 때 세션 http://stackoverflow.com/questions/5989237/generating-hash-key-for-app-using-facebook-sdk을 시도하지만, 불운. –

+0

페이스 북 앱 설정 및 코드에 패키지 이름을 올바르게 입력 했습니까? –

+0

예 : 패키지 = "XXX.XXX.XXX"로 확인하면 매니페스트 파일에서 선언 한 것과 같습니다. 괜찮습니까? 나는 뭔가를 놓친다. 그것은 번들 ID 또는 mendatory 아닌 페이스 북 개발자 포털의 기본 IOS APP에서 언급 된 것과 유사해야합니까? –

0

많은 사람들에게이 문제가 있습니다. 명령 줄에서 해시를 생성하는 대신 코드에서 생성 한 다음 로그에 인쇄하여 거기에서 복사 할 수 있습니다.

다음 코드는 그렇게합니다. 예를 들어 onCreate() 활동에 배치하고 해시가 있으면 제거 할 수 있습니다. 분명히 자신의 것으로 패키지 이름을 변경해야합니다.

try { 
    PackageInfo info = getPackageManager().getPackageInfo(
      "com.facebook.samples.loginhowto", 
      PackageManager.GET_SIGNATURES); 
    for (Signature signature : info.signatures) { 
     MessageDigest md = MessageDigest.getInstance("SHA"); 
     md.update(signature.toByteArray()); 
     Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT)); 
    } 
} catch (NameNotFoundException e) { 
} catch (NoSuchAlgorithmException e) { 
} 

This 대답은 잘 코드를 사용하지 않으려면, 명령 줄에서 동일한 작업을 수행하는 방법에 대해 설명합니다. 둘 다 동일한 결과를 가져야합니다.

0

것은 나는 또한이 링크에서 이것을 시도

try { 
      PackageInfo info = getPackageManager().getPackageInfo("YOUR_PACKAGE_NAME", PackageManager.GET_SIGNATURES); 
      for (Signature signature : info.signatures) { 
       MessageDigest md = MessageDigest.getInstance("SHA"); 
       md.update(signature.toByteArray()); 
       Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT)); 
       } 
     } catch (NameNotFoundException e) { 

     } catch (NoSuchAlgorithmException e) { 

     } 
+0

나는 또한이 링크 http : // stackoverflow에서 이것을 시도 .com/questions/5989237/generate-hash-key-for-app-using-facebook-sdk하지만 운이 없다. –

+0

@SureshSharma이 코드를 MainActivity의 onCreate() 메소드에 추가하십시오. – morroko

+0

예. 이미 했어요 ... 제 애플리케이션에서 메인으로 스플래쉬 액티비티가 있습니다. onCreateMethod에서이 메서드를 사용하여 해시 키를 만들었습니다. DDMS logcat에서 이것을 복사하여 페이스 북 개발자 포털의 내 기본 Android App 섹션에있는 해시 키 필드에 붙여 넣기 만하면됩니다. 하지만 여전히 작동하지 않습니다. 내가 뭔가를 놓친다면 알려줘. –