Swift

iOS 페이스북 로그인

반다이크 2022. 2. 26. 23:27
반응형

1.FaceBook Developers 접속

developers.facebook.com/docs/facebook-login/ios

 

 

2.라이브러리 설치

2-1 프로젝트 폴더 안에 podfile 실행 후 pod 'FBSDKLoginKit' 저장

 

2-2 해당 프로젝트 경로 이동후 pod install

 

3.Facebook 개발자 사이트에서 앱 등록하기

https://developers.facebook.com/apps/

3-1 설정 등록(해당 항목 없을시 아무거나)

 

 

 

3-3 번들 아이디 입력

#번들 ID 확인

 

3-4 페이스북 로그인

 

 

4.info.plist 설정

<dict>
			<key>CFBundleTypeRole</key>
			<string>Editor</string>
			<key>CFBundleURLSchemes</key>
			<array>
				<string>fb3316615658620123</string>
			</array>
		</dict>
	</array>
	<key>FacebookAppID</key>
	<string>fb3316615658620123</string>
	<key>FacebookClientToken</key>
	<string>72ca5d6cf829fdd29782f0137d11153f</string>
	<key>FacebookDisplayName</key>
	<string>HealthZZang</string>

####중요####
Info.plist에만 하면 안되고 target 클릭해서 나오는 Info 에도 FacebookAppID, FacebookClientToken, FacebookDisplayName 입력해줘야 합니다.
왜 한가지만 하면 안되는지 모르겠음ㅜㅜㅜㅜ


#APP ID 및 토큰 찾는법

 

5.코드 입력

#AppDelegate 사용시

import FBSDKoreKit

 

 

#SceneDelegate 사용시

import FBSDKoreKit

 

 

1-1 실행

# 로그인이 안되어 있을경우 로그인 버튼 함수 생성(LoginButtonDelegate 상속)

 

extension SocialLoginManager: LoginButtonDelegate {
    func startFacebookLogin(){
        
        //로그인 되어있는 경우
        if AccessToken.current?.isExpired != true &&
            AccessToken.current?.userID != nil &&
            AccessToken.current?.tokenString != nil {
            let userId = AccessToken.current?.userID
            let tokenString = AccessToken.current?.tokenString
            print("userID: ",userId)
            delegate?.socialLogin(social_id: userId ?? "0", type: .facebook, platform: 3)
                
        } else {
            let fbInstance = FBLoginButton()
            fbInstance.delegate = self
            fbInstance.permissions = ["public_profile", "email"]
            fbInstance.sendActions(for: .touchUpInside)
        }
        
    }
    
    func loginButton(_ loginButton: FBLoginButton, didCompleteWith result: LoginManagerLoginResult?, error: Error?) {
        if let error = error {
            //self.delegate?.onError(.facebook, error)
        } else {
            if let result = result {
                let tokenString = result.token?.tokenString ?? ""
                let userId = result.token?.userID
               print("userId: ",userId)
               
            }
        }
    }
    
    func loginButtonDidLogOut(_ loginButton: FBLoginButton) {
        
    }
}






###그래도 Appdelegate에서

Thread 1: Exception: "App ID not found. Add a string value with your app ID for the key FacebookAppID to the Info.plist or call [FBSDKSettings setAppID:].


에러가 뜬다면 

 

import FBSDKCoreKit
 
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        
        ApplicationDelegate.shared.application( application, didFinishLaunchingWithOptions: launchOptions )//Facebook loing 하기 위해 사용된 코드

        FBSDKCoreKit.Settings.shared.appID = "176370900064477"

        return true
    }

같이 입력해주세요.

반응형

'Swift' 카테고리의 다른 글

iOS 애플 로그인  (0) 2022.02.27
iOS 구글 로그인  (0) 2022.02.27
iOS 네이버 로그인  (0) 2022.02.26
iOS 카카오 로그인  (0) 2022.02.26
FCM, APNS 연동 방법  (3) 2022.02.25