我使用FacebookSDK以及所有下面的步驟生成一個新的keyhash,keyhash使用調試密鑰庫生成的工作就像一個魅力,但用我們自己的情侶密鑰庫不工作的keyhash產生的,那麼我想在troubleshooting給出的功能,但它仍然是不工作。我在的onCreate安卓:概念背後的Facebook SDK的KeyHash?
// Add code to print out the key hash
try {
System.out.println("Inside try for keyhash");
PackageInfo info = getPackageManager().getPackageInfo(
"com.myapp.facebookint",
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));
System.out.println("KeyHash:"+Base64.encodeToString(md.digest(), Base64.DEFAULT));
}
} catch (NameNotFoundException e) {
System.out.println("keyhash name not found");
} catch (NoSuchAlgorithmException e) {
System.out.println("keyhash algo not found");
}
使用下面的代碼試圖它給了我一個keyhash,這是我在Facebook的應用程序設置插入任何決議!現在我想知道使用keyhash的概念,Facebook如何識別它?以及如果我使用debug keyhash上傳應用程序會發生什麼?
我的印象是,Facebook將keyhash與app本身的簽名進行匹配,如果兩者都使用相同的密鑰存儲庫進行簽名,那麼它允許應用程序進行身份驗證,但似乎並非如此。由於我出口的應用程式,例如我會爲發佈做準備,下載的APK到手機通過文件瀏覽器,並試圖從那裏安裝和運行,這是相同的,因爲它會在調試模式下進行。
任何一個可以請一些線索這光。