Kotlin×Android에서 Facebook 인증 및 획득
6533 단어 FacebookSDKAndroidKotlin
페이스북 SDK가 언제 버전 업데이트로 규격이 바뀌었는지 살짝 빠져들었을 때의 노트다.
※ 2017년 11월 15일 설치 방법입니다.
이번에 반한 건 특히 다음과 같습니다.
(날짜상 규격이 오래전부터 바뀌었는데...SNS 인증 관련에서 멀어지면 이렇게 된다


업그레이드 안내서에는 다음과 같은 내용만 기재되어 있다

리셋된 기록은 있지만 초기화된 설치 방법의 기록은 없습니다!
초기화된 설명을 삭제하고 실행하면 초기화되지 않아서 안 된다고 합니다.
FacebookSDK.sdkInitialize
그래.https://developers.facebook.com/docs/facebook-login/android
여기서 찾아봤는데 기록이 없어요.(스타트 가이드에도 없어!!!)
그래서 다음 Facebook SDK의 Github부터 시작하겠습니다.
https://github.com/facebook/facebook-android-sdk
Facebook의 sdk Initialize 함수 제목 주석에서
* As part of SDK initialization basic auto logging of app events will occur, this can be
* controlled via 'com.facebook.sdk.AutoLogAppEventsEnabled' manifest setting
기록이 있기 때문에 manifest를 변경해 보세요.AndroidManifest.xml
<meta-data android:name="com.facebook.sdk.AutoLogAppEventsEnabled" android:value="true" />
이렇게 하면 초기화할 수 있고 실행할 수 있다.나는 이것이 시작 안내서에 쓰는 것이 가장 좋다고 생각한다.
지금까지 Kotlin은 거의 상관없어...

이번에는 Facebook LoginButton을 사용하지 않았기 때문에 다음과 같은 용도로 설치해 보았습니다.
그만큼 Kotlin 같아진 것 같아서...
AppLoginActivity.kt
private val fbCallback = CallbackManager.Factory.create()
// 以下の[loginFacebook]をクリックのListenerに登録しています
val loginFacebook : (v : View) -> Unit = {
val fbInfo = SNSLoginUser.shared().fbInfo
LoginManager.getInstance().apply {
registerCallback(fbCallback, object:FacebookCallback<LoginResult> {
override fun onSuccess(result: LoginResult?) {
Log.e("INFO", "[Facebook Login Success]")
// result?.accessToken?.token -> トークン
// val fbProfile = Profile.getCurrentProfile() -> プロフィール情報
// fbProfile.name -> ユーザー名(firstName/middleName/lastNameが一緒になったもの)
// fbProfile.id -> result?.accessToken?.userIdと同じ
// Profile.getCurrentProfile().getProfilePictureUri(300, 300).toString() -> プロフィール写真(今回は300x300のサイズで取得)
}
override fun onCancel() {
Log.e("INFO", "[Facebook Login Cancel]")
}
override fun onError(error: FacebookException?) {
Log.e("ERROR", "[Facebook Login Error]" + error.toString())
}
})
logInWithReadPermissions(presentActivity, setOf("public_profile"))
// 今回は"email"は不要だったので要求していない
}
}
※ 위에 기재되지 않은 부분onActivityResult 결과를 기다립니다, CallbackManager.onActivityResult를 통해 FacebookCallback 호출
※ Facebook SDK의 iOS와 Android는 상당히 높은 주파수로 업데이트되었으니 주의해야 합니다.이력서 갱신을 먼저 보시는 것을 추천합니다.
Reference
이 문제에 관하여(Kotlin×Android에서 Facebook 인증 및 획득), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/takuyaaan/items/066a33b24ffe903e9a9b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)