我用這個代碼來生成我的應用程序keyhash:的Facebook SDK - Keyhashs不匹配
public static String getKeyHash(Context context) {
String returner = "";
try {
PackageInfo info = context.getPackageManager().getPackageInfo(
"com.abc.mypackage", PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
returner = Base64.encodeToString(md.digest(), Base64.DEFAULT);
Log.e(TAG, Base64.encodeToString(md.digest(), Base64.DEFAULT));
}
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
Log.e(TAG, e.toString());
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
Log.e(TAG, e.toString());
}
return returner;
}
的功能從主活動onCreate
函數調用。而產生的散列是
ki4PhEa/cy/qsP/omrTEPkYFCDE=
由於這種Android app Key Hash doesn't match any stored key hashes,我全部換成了/
到_
,最後我得到這個
ki4PhEa_cy_qsP_omrTEPkYFCDE=
我把keyhash到Facebook開發人員網站,保存
當我登錄到Facebook上,我的應用程序,讓這個異常(真棒!!!!)
02-26 23:05:49.008 4966-4966/? E/MyClassListViewAdapter﹕ Bad thing happened com.facebook.FacebookAuthorizationException: UnknownError: ApiException:Key hash ki4PhEa_cy_qsP_omrTEPkYFCDE does not match any stored key hashes.
我該如何解決這個問題的荒謬?
更新此問題只發生在我的真實設備(Htc One X)上。在仿真器上運行時不會發生
我用'keytool'在第一時間,並得到了這個例外,所以我轉而使用哈希計算函數。順便說一句,我只是再次運行keytool,它給出結果'bLxqLn/RXHcNbPbGMPFfbQPDlY8 ='。我再次將'/'替換爲'_'並放到facebook開發者網站上。再次,仍然不能在我的真實設備上工作。請看看我更新的問題 –