Facebook으로 로그인하기
Facebook으로 로그인하기
1. 앱 기본 설정
페이스북 개발자 사이트에 접속해서 새 앱을 추가합니다.
자신의 앱 이름을 적고 앱 ID를 만듭니다.
Facebook으로 로그인
을 누릅니다.
iOS
를 누릅니다.
iOS SDK 다운로드
를 누릅니다.
다운로드 받은 뒤 압축을 풀면 위와 같은 파일이 들어있습니다.
Bolts.framework
, FBSDKCoreKit.framework
, FBSDKLoginKit.framework
을 드래그 앤 드롭해서
Frameworks
폴더에 넣어줍니다. 만약에 이 폴더가 없으면 만들어줍니다.
이 창이 뜰텐데 꼭 Copy items if needed
를 체크해줍니다.
자기 앱의 번들ID를 적고 Save를 누른 뒤 넘어갑니다.
저 버튼을 클릭해서 활성화 해주고 Save를 누른 뒤 넘어갑니다.
라고 합니다. 밑에 사진으로 쉽게 설명 드리겠습니다.
이렇게 해서 `Info.plist` 를 코드로 엽니다. `
objective-c 코드로 되어 있네요. swift 코드는 밑에 써두겠습니다.
AppDelegate.swift
에 아래 코드를 써주시면 됩니다.
1 | // AppDelegate.swift |
위의 두 함수중 밑의 함수는 iOS 10 이상에서만 사용 할 수 있습니다. 따라서 그 밑 버전에서 사용하려면 아래의 코드를 사용해야 합니다.
1 | func application(_ application: UIApplication, |
여기까지 앱의 기본 설정을 마쳤습니다.
위의 7, 8, 9, 10번 단계는 밑에서 설명 하므로 넘어가셔도 됩니다.
2. Facebook 권한 요청
Facebook 아주 기본적인 로그인(userID)을 제외하고 다른 기능을 사용 하려면 로그인 할 때 따로 권한 요청을 해야 합니다. 사용자의 프로필(프로필 사진 등)과 이메일을 얻으려고 하면 따로 권한 요청을 해야 합니다. 사용 가능한 권한은 다음과 같습니다.
로그인 할 때 권한 요청 하는 방법은 밑에서 다루도록 하겠습니다.
자세한 사항은 여기
를 참고해 주세요.
3. Facebook SDK 버튼으로 로그인 하기
Facebook SDK에서 제공하는 기본 버튼으로 로그인 하는 방법을 살펴보겠습니다.
커스텀 버튼으로 로그인 하길 원하시는 분은 건너 뛰셔도 됩니다.
1 | import FBSDKCoreKit |
위와 같이 코드로 버튼을 만들어 주셔도 되고 storyboard로 하셔도 됩니다.
권한 요청 리스트는 FBSDKLoginButton
의 readPermissions
에 String Array로 넣어 주시면 됩니다.FBSDKLoginButton
의 delegate
는 FBSDKLoginButtonDelegate
입니다.
자세한 코드는 밑에 있습니다.
1 | extension UIViewController: FBSDKLoginButtonDelegate { |
loginButton 함수는 로그인 프로세스가 끝나면 호출 되는 함수입니다.
loginButtonDidLogOut 함수는 로그아웃이 되면 호출 되는 함수입니다.
loginButtonWillLogin 함수는 로그인 버튼이 클릭될 때 호출 되는 함수입니다.
자세한 정보는 FBSDKLoginButtonDelegate 와 FBSDKLoginManagerLoginResult 를 확인해 주세요
앱을 실행 하면 위와 같은 버튼이 뜹니다. 이 버튼을 클릭하면 `loginButtonWillLogin` 함수가 호출 됩니다. 버튼을 클릭하면 이런 AlertDialog가 뜹니다. 그리고 로그인 화면으로 연결 됩니다. 로그인하면 이 화면이 뜹니다. 그리고 나면 다시 앱으로 돌아와서 로그인 버튼이 로그아웃 버튼으로 바뀌어 있습니다. 이 버튼을 클릭하면 로그아웃이 되고 `loginButtonDidLogOut` 함수가 호출 됩니다.4. Custom 버튼으로 로그인 하기
1 | let fbLoginManager = FBSDKLoginManager() |
커스텀 버튼을 만들고 클릭 되면 위의 코드를 실행시키면 됩니다.
권한 요청 리스트는 withReadPermissions
에 String Array로 넣어 주시면 됩니다.
로그아웃은 단순하게 FBSDKLoginManager
의 logOut()
함수를 실행 시키면 됩니다.
1 | typealias FBSDKLoginManagerRequestTokenHandler = (_ result: FBSDKLoginManagerLoginResult, _ error: Error?) -> Void |
callback함수인 FBSDKLoginManagerRequestTokenHandler은 위와 같이 정의되어 있습니다.
자세한 정보는 FBSDKLoginManager 와 FBSDKLoginManagerLoginResult 를 확인해 주세요.
5. 로그인 여부 확인하기
1 | import FBSDKLoginKit |
위 코드를 사용하면 로그인 여부를 확인 할 수 있습니다.
Facebook으로 로그인하기