Android 使用Facebook登入 取得Hash Key金鑰雜湊

現在越來越多註冊登入功能,因為要降低用戶的流失所以慢慢都採用第三方登入。
其中Facebook是最常用的選項,但是依照 Facebook developer 的說明文件要使用 openssl  取得Hash Key太麻煩了,而且和對岸的工程師做串接常常為了這個問題搞不定。

為了解決這個問題,請直接將下面這串程式碼提供給Android 工程師,搭配 Facebook developer 的文件服用。

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    
    // Add code to print out the key hash
    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.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
            }
    } catch (NameNotFoundException e) {
        
    } catch (NoSuchAlgorithmException e) {
        
    }

保存所做的更改,然後重新執行。檢查您的logcat輸出是否有類似以下訊息。
“478uEnKQV+fMQT8Dy4AKvHkYibo=” 這個就是我們要的Key Hashes了。

12-20 10:47:37.747: D/KeyHash:(936): 478uEnKQV+fMQT8Dy4AKvHkYibo=
關於作者 Roy

曾經北漂的工程師,現在專注於.Net Core、WordPress開發