メモメモメモ

ほんとうにめも

【ReacNative Expo】"Facebook Policy Warning" : invalid key hashを解決した

経緯

Facebookから AnrdoidでFacebookログインするとクラッシュするから直してね。直さなかったらFacebookログイン機能停止するからねって言う旨のメールがきた。 実際のメール: f:id:yooska14:20191126170730p:plain

確かに、いつからかAndroidでのFacebookログインが失敗するようになっていたようだ。 試してみると、invalid key hash does not match any stored key hashesとエラーが出る。(本番環境で)😭 これはマズいので即刻対応した。

原因

おそらくだが、AAB(Android App Bundle)に対応すると、Facebookで使うKeyHashが変わるみたいだった。 ドキュメント(https://docs.expo.io/versions/latest/sdk/facebook/)にある通り、rRW++LUjmZZ+58EbN5DVhGAnkX4=expo fetch:android:hashesの結果をFacebookのKeyHashに入れれば良いはずだが、AAB対応すると別の対応が必要になるっぽい。ドキュメントに明記されてるわけじゃないが、僕の場合それで直ったので書き残しておく。

解決方法

https://github.com/magus/react-native-facebook-login/issues/297#issuecomment-433816732のソリューションが適用できた。 流れを書くと、 1. GooglePlayConsoleの「リリース管理」 > アプリの署名に行く。 2. アプリへの署名証明書セクションのSHA-1 証明書のフィンガープリントをコピーする。 ※CD:A1:EA:A3:5C:5C:68:FB:FA:0A:6B:E5:5A:72:64:DD:26:8D:44:84 のような形になる。SHA1:の部分は必要ないので除く。 3. http://tomeko.net/online_tools/hex_to_base64.phpを開き、Hex Stringの欄にコピーした文字列をペーストする 4. Convertし、結果(base64)をコピーしてFacebookのKeyHashに入れる。

参考・使ったもの

github.com tomeko.net