Facebookでのログインに最新のFacebook-sdkを使用しています
_ implementation 'com.facebook.Android:facebook-login:[5,6)'
_
_custom button
_を使用してFacebookでログインしてみてください。_Facebook-Android-sdk
_ githubの問題でもこのエラーが発生します https://github.com/facebook/facebook-Android-sdk/issues/58 =この問題は解決されたかどうか。
Facebookネイティブアプリがインストールされている場合はダイアログを開きたいので、最初にlogout
LoginManager.getInstance().logOut()
を使用します
私はLoginManager.getInstance()
のようなデフォルトのログインマネージャーを使用し、次にログインしてログアウトしますが、ログアウト後にこのAccessToken.getCurrentAccessToken()
のようにトークンをチェックすると、まだ存在します
以下は私のコードです:
_callbackManager =
CallbackManager.Factory.create()
LoginManager.getInstance().logOut()
loginManager = LoginManager.getInstance()
LoginManager.getInstance()
.registerCallback(callbackManager, object : FacebookCallback<LoginResult> {
override fun onSuccess(loginResult: LoginResult) {
val graphRequest = GraphRequest.newMeRequest(loginResult.accessToken)
{ jsonObj, _ ->
}
val parameters = Bundle()
parameters.putString("fields", "id,name,email")
graphRequest.parameters = parameters
graphRequest.executeAsync()
}
override fun onCancel() {
}
override fun onError(error: FacebookException) {
var msg = ""
}
})
loginManager.logInWithReadPermissions(
this@SignUpActivity,
listOf("email", "public_profile")
)
_
Manifest
ファイル
_<meta-data Android:name="com.facebook.sdk.ApplicationId"
Android:value="@string/facebook_app_id"/>
<activity Android:name="com.facebook.FacebookActivity"
Android:configChanges=
"keyboard|keyboardHidden|screenLayout|screenSize|orientation"
Android:label="@string/app_name" />
_
最後に、私は多くの研究の後に解決策を見つけ、多くの答えを読みました。
アプリが開発モードの場合、開発キーハッシュを生成します
Windowsの場合は、次のコマンドを使用します。
keytool -exportcert -alias androiddebugkey -keystore "C:\Users\USERNAME\.Android\debug.keystore" | "C:\OpenSSL\bin\openssl" sha1 -binary | "C:\OpenSSL\bin\openssl" base64
アプリがReleaseモードの場合、Release Key Hashを生成します
keytool -exportcert -alias YOUR_RELEASE_KEY_ALIAS -keystore YOUR_RELEASE_KEY_PATH | openssl sha1 -binary | openssl base64
これがあなたの時間を節約することを願っています...