쪼렙 as! 풀스택

17.11.26. 페이스북 Swift SDK 사용. LoginManager 로 로그인, GraphAPI 사용하기. 본문

개발 일지/iOS & Android

17.11.26. 페이스북 Swift SDK 사용. LoginManager 로 로그인, GraphAPI 사용하기.

코코앱 2017. 11. 27. 14:38

이때까지는 페이스북에서 제공하는 SDK 는 Objective-C로 되어있었다. 그리고 Swift 에서 Obj-C SDK 를 사용해도 별 무리가 없었기 때문에, 잘 사용하고 있었는데,


오랜만에 Facebook Developer 에 들어가보니, Swfit SDK 가 있는것 아닌가?! 


버전은 0.3 ... 아직 베타버전인가보다.

SDK 에서 String.characters 워닝이 뜬다. Swift4 에서는 characters 가 Deprecated 되었으니... Swift3으로 만들어진것 같다.


페북 Swift SDK 는 Cocoapod 으로 설치가 가능해서, 아주 편리해졌다.



1. 로그인 매니저로 로그인 하기. - 페이스북에서 제공하는 로그인 버튼이 있지만, 직접 커스텀한 버튼을 이용해서 페북 로그인을 하고 싶다면, LoginManager 를 사용하면 된다.


func login(){

        LoginManager.init().logIn(readPermissions: [.publicProfile, .email], viewController: self) { (loginResult) in

            

            switch loginResult {

            case .failed(let error):

                print(error)

            case .cancelled:

                print("유저 캔슬")

            case .success(let grantedPermissions, let declinedPermissions, let accessToken):

                print("로그인 성공")

                print(grantedPermissions)

                print(declinedPermissions)

                print(accessToken)

            }

        }

    }





2. GraphAPI 이용하기. - 사용자의 이메일, facebookId, 이름을 가져오려면, GraphAPI 로 데이터를 불러와야 한다.


func requestMe(){

        let params = ["fields" : "id,name,email"]

        GraphRequest(graphPath: "me", parameters: params).start({ (httpResponse, result) in

            

            switch result {

            case .failed(let error):

                print(error)

            case .success(response: let response):

                print("Graph Request 성공")

                if let dict = response.dictionaryValue {

                    let email = dict["email"] as? String

                    let fbId = dict["id"] as? String

                    let name = dict["name"] as? String

                }//if

            }//switch

        })  //GraphRequest.start

    }







Comments