내 앱에 Facebook 로그인을 구현하려고하는데 로그인 프로세스가 시작되고 매우 모호한 메시지와 함께 실패하고 내 앱 측에서 예외가 발생하지 않는 매우 독특한 문제에 직면 해 있습니다. 계속.
DialogFragment
로그인 프로세스에를 사용하여 나와 관련이 있다고 생각 하고 있으며 Facebook LoginButton
은 DialogFragment
정상적인 조각이나 활동 대신 이것의 일부입니다 . 내 XML에 로그인 버튼을 추가합니다.
<com.facebook.login.widget.LoginButton
android:id="@+id/loginFacebookButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/default_margin_double"
android:layout_marginEnd="@dimen/default_margin_double"
android:layout_marginBottom="@dimen/default_margin"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
tools:background="@drawable/rounded_blue_bg"
android:layout_marginTop="@dimen/default_margin"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:paddingLeft="@dimen/default_margin_double"
app:layout_constraintBottom_toTopOf="@id/loginOrLayout" />
그리고 코드에 콜백을 추가합니다. onCreateDialog
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
val dialog = super.onCreateDialog(savedInstanceState)
setStyle(STYLE_NORMAL, R.style.FullscreenDialog)
val view = View.inflate(context, R.layout.fragment_login, null)
//FB Login callback manager
val callbackManager = CallbackManager.Factory.create()
val fbLoginButton = view.loginFacebookButton
fbLoginButton.fragment = this
fbLoginButton.setPermissions(listOf("name", "email", "public_profile"))
fbLoginButton.loginBehavior = LoginBehavior.NATIVE_WITH_FALLBACK
fbLoginButton.registerCallback(callbackManager,
object : FacebookCallback<LoginResult> {
override fun onSuccess(loginResult: LoginResult) {
fbLoginSuccessful(loginResult)
}
override fun onCancel() {}
override fun onError(exception: FacebookException) {
Log.w(TAG, "onError: Failed to login with FB.", exception)
loginFailed(exception.localizedMessage)
}
})
return dialog
}
로그인 버튼을 누르면 로딩 ProgressBar가 표시되고 Facebook 앱이 열리고 내 계정을 탭한 다음 추가 로딩 후 다음 화면이 나타납니다.
여기에 있는 문서를 따랐 지만 제대로 작동하지 않는 것 같습니다. 어떤 도움이라도 대단히 감사합니다. 문서 에서 언급 한대로 코드 내에서 키 해시를 인쇄했으며 개발자 콘솔에 올바른 해시를 가지고 있지만 여전히 오류가 발생합니다. 감사합니다
내 조각에 다음이 누락 된 것 같습니다.
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
callbackManager.onActivityResult(requestCode, resultCode, data)
super.onActivityResult(requestCode, resultCode, data)
}
그러나 실제 FB 활동이 반환되기 전에 오류가 발생했기 때문에 관련이 없었을 수 있으므로 수정 된 내부 facebook 오류 일 수 있습니다.
비슷한 문제에 직면 한 모든 사람에게 행운을 빕니다. FB SDK에 대한 지원은 사실상 존재하지 않습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다