작성
·
258
0
몇시간째 헤메고 있네요;;
하라는 대로 다 했는데 여기서 onSuccess로 넘어가질 않아서 진행이 안됩니다 ㅜ
LoginManager.getInstance()
.registerCallback(callBackManager, object : FacebookCallback<LoginResult> {
override fun onSuccess(result: LoginResult) {
Log.i("facebook_callback", "success")
handleFacebookAccessToken(result.accessToken)
}
override fun onCancel() {
Log.i("facebook_callback", "cancel")
}
override fun onError(error: FacebookException?) {
Log.i("facebook_callback", "error")
}
})
답변 3
0
같은 부분에서 헤매다가 stckoverflow 에서 답을 찾았습니다.
https://stackoverflow.com/questions/41861564/server-error-code-1675030-message-error-performing-query
작성하신 코드 바로 윗부분에 있는 loginWithReadPermission 에서 Arrays.asList 매개변수를 변경했더니 정상 작동합니다.
fun facebookLogin() {
LoginManager.getInstance()
.logInWithReadPermissions(this, Arrays.asList("email", "public_profile", "user_friends"))
// .logInWithReadPermissions(this, Arrays.asList("public_profile","email"))
LoginManager.getInstance()
.registerCallback(callbackManager, object : FacebookCallback<LoginResult> {
override fun onSuccess(result: LoginResult?) {
// second step
handleFacebookAccessToken(result?.accessToken)
Log.d("fecebook 로그인", "성공")
}
override fun onCancel() {
Log.d("fecebook 로그인", "취소")
}
override fun onError(error: FacebookException?) {
Log.d("fecebook 로그인", "에러 발생 $error")
}
})
}
0
0
해결방법
1.페이스북은 자체적으로 loginbutton을 가지고 있습니다 xml에서 그냥 button을 페이스북의 loginbutton으로 바꾸면 됩니다
2.페이스북 loginbutton은 클릭이벤트 리스너를 달지 않아도 동작하게 만들어 놨습니다. 이벤트리스너 등록 안하고 바로 registercallback달아서 사용하시면 됩니다
facebook_sign_in_button.registerCallback(callBackManager, object : FacebookCallback<LoginResult> {
override fun onSuccess(result: LoginResult) {
Log.i("facebook_callback", "success")
handleFacebookAccessToken(result.accessToken)
}
override fun onCancel() {
Log.i("facebook_callback", "cancel")
}
override fun onError(error: FacebookException?) {
Log.i("facebook_callback", "error")
}
})