-
iOS) Facebook 로그인 연동 custom Buttom으로 만들기Programing Language/iOS(Swift) 2020. 4. 29. 17:12728x90반응형
- 개발자 등록 및 초기 세팅 설정은 개발자 페이지를 참고하세요.
https://developers.facebook.com/docs/facebook-login
Facebook 로그인 - 문서 - Facebook for Developers
안전하고 빠르고 간편하게 사용자가 앱이나 웹사이트에 로그인하는 방법입니다.
developers.facebook.com
- 커스텀 버튼 코드
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersfunc facebookLoginBtn() { // 버튼 코드로 등록 facebook_login_btn.translatesAutoresizingMaskIntoConstraints = false facebook_login_btn.setTitle("페이스북으로 계속하기", for: .normal) facebook_login_btn.setTitleColor(.black, for: .normal) facebook_login_btn.titleLabel?.font = .boldSystemFont(ofSize: 13) facebook_login_btn.addTarget(self, action: #selector(faceBookLoginButtonAction(_:)), for: .touchUpInside) facebook_login_btn.layer.cornerRadius = 5 facebook_login_btn.layer.borderWidth = 1 facebook_login_btn.clipsToBounds = true scroll_view.addSubview(facebook_login_btn) facebook_login_btn.topAnchor.constraint(equalTo: self.kakao_login_btn.bottomAnchor, constant : self.view.frame.height * 0.015).isActive = true facebook_login_btn.leadingAnchor.constraint(equalTo: self.view.leadingAnchor, constant: self.view.frame.width * 0.08).isActive = true facebook_login_btn.trailingAnchor.constraint(equalTo: self.view.trailingAnchor, constant: self.view.frame.width * -0.08).isActive = true facebook_login_btn.heightAnchor.constraint(equalToConstant: self.view.frame.width * 0.13).isActive = true } @objc func faceBookLoginButtonAction(_ sender : UIButton) // 버튼 변수 addtarget에 { // 1 let loginManager = LoginManager() if let _ = AccessToken.current { // Access token available -- user already logged in // Perform log out // 2 loginManager.logOut() } else { // Access token not available -- user already logged out // Perform log in // 3 loginManager.logIn(permissions: ["public_profile", "email"], from: self) { [weak self] (result, error) in // 4 // Check for error guard error == nil else { // Error occurred print(error!.localizedDescription) return } // 5 // Check for cancel guard let result = result, !result.isCancelled else { print("User cancelled login") return } //6 check for login Success GraphRequest.init(graphPath: "me", parameters: ["fields" : "id, name, email"]).start(completionHandler: {(connection, result, error) -> Void in print("error : ",error ?? "No Error") guard let facebook = result as? [String: AnyObject] else { return } let token = facebook["id"] as? String let name = facebook["name"] as? String let email = facebook["email"] as? String print("token : ",token ?? "no Token") print("name: \(name ?? "no Name")") print("email: \(email ?? "no Email")") }) } } } 728x90반응형'Programing Language > iOS(Swift)' 카테고리의 다른 글
iOS) 네이버 로그인 연동하는 방법[펌] (0) 2020.04.29 iOS) 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:]." 오류 해결하는 방법 (0) 2020.04.29 iOS) uiObject(예: 이미지뷰) 삭제하는 방법 (0) 2020.04.16 iOS) 서버와 통신할때 get으로 보내는 단어 가 한글일때 인코딩 하는 방법 (0) 2020.04.10 iOS) HEX 코드를 UIColor 변수에 담기 (0) 2020.04.09