Я использую Facebook android-логин sdk.И когда я пытаюсь войти без встроенного приложения Facebook на устройстве, используя встроенную веб-форму), Facebook пытается войти дважды.Я обнаружил , что проблема в кнопке Facebook Login.Итак, я хочу знать, есть ли какой-то способ сохранить FacebookLoginButton (вместо обычной кнопки) и не регистрироваться дважды, если у пользователя нет собственного приложения Facebook
Код MyFacebookActivity
class MyFacebookActivity : AppCompatActivity() {
private var callbackManager: CallbackManager? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_my_facebook)
AppEventsLogger.activateApp(this)
// This button is from facebook sdk (com.facebook.login.widget.LoginButton)
facebookSignInButton.setOnClickListener{
callbackManager = CallbackManager.Factory.create()
LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("public_profile", "default"))
LoginManager.getInstance().registerCallback(callbackManager,
object : FacebookCallback<LoginResult> {
override fun onSuccess(result: LoginResult) {
Log.d("TAG", "Facebook token ${result.toString}")
val request = GraphRequest.newMeRequest(
result.accessToken
) { `object`, response ->
Log.d("TAG", response.jsonObject.toString())
}
val parameters = Bundle()
parameters.putString("fields", "id,name")
request.parameters = parameters
request.executeAsync()
}
override fun onCancel() {
Log.d("FacebookTag", "Facebook onCancel")
}
override fun onError(error: FacebookException?) {
Log.d("FacebookTag", "Facebook onError")
}
})
}
facebookLogOutButton.setOnClickListener {
LoginManager.getInstance().logOut()
}
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
callbackManager?.onActivityResult(requestCode, resultCode, data)
}
}