iOS
Swift로 iOS 앱에 페이스북 로그인 기능 구현하기 튜토리얼
11 분
swift 튜토리얼을 사용하여 ios 앱에 facebook 로그인 추가하기 소개 이 섹션에서는 facebook 로그인을 사용하여 사용자 등록이 가능한 앱을 만드는 방법과 parse server 핵심 기능 을 back4app을 통해 설명합니다 전제 조건 이 빠른 시작을 완료하려면 다음이 필요합니다 xcode back4app에서 생성된 앱 다음의 새 parse 앱 튜토리얼 을 따라 back4app에서 parse 앱을 만드는 방법을 배우세요 back4app에 연결된 ios 앱 참고 다음의 parse sdk (objc) 설치 튜토리얼 을 따라 back4app에 연결된 xcode 프로젝트를 만드세요 1 페이스북 설정 페이스북 기능을 사용하려면 다음을 수행해야 합니다 다음으로 가십시오 페이스북 개발자 웹사이트 에 가서 계정과 앱을 만드세요 parse 애플리케이션의 설정 페이지에 애플리케이션의 페이스북 애플리케이션 id를 추가하세요 페이스북 sdk 시작하기 위한 지침을 따르세요 https //developers facebook com/docs/ios/getting started 를 따라 페이스북 sdk에 연결된 앱을 만드세요 2 페이스북 앱을 back4app과 연결하기 앱 대시보드로 이동하세요 back4app 웹사이트 를 클릭하고 서버 설정 서버 설정 을 클릭하세요 “facebook 로그인” 블록을 찾아서 설정 설정 을 클릭하세요 “facebook 로그인” 블록은 다음과 같습니다 3\ xcode 프로젝트로 돌아가서 info plist info plist 에서 facebook 구성 , 4a단계, 항목 2의 코드를 복사하여 \<dict> \</dict> \<dict> \</dict> 부분에 붙여넣으세요 4\ facebook의 대화 상자를 사용하려면, 4a단계, 항목 3의 코드를 복사하여 info plist info plist 파일에 붙여넣으세요 5\ 저장하세요 3 앱 설정하기 다음 코드를 application\ didfinishlaunchingwithoptions 메서드에 추가하세요 parse sdk를 초기화한 후에 1 import fbsdkcorekit 2 import parse 3 4 // appdelegate swift 5 func application(application uiapplicatiofunc application( application uiapplication, didfinishlaunchingwithoptions launchoptions \[uiapplication launchoptionskey any]?) > bool { 6 // initialize parse 7 let parseconfig = parseclientconfiguration { 8 $0 applicationid = "parseappid" 9 $0 clientkey = "parseclientkey" 10 $0 server = "parseserverurlstring" 11 } 12 parse initialize(with parseconfig) 13 pffacebookutils initializefacebook(applicationlaunchoptions launchoptions) 14 } 2\ 앱 델리게이트에 다음 핸들러를 추가하세요 1 func application( application uiapplication, open url url, sourceapplication string?, annotation any) > bool { 2 3 return fbsdkapplicationdelegate sharedinstance() application( 4 application, 5 open url, 6 sourceapplication sourceapplication, 7 annotation annotation 8 ) 9 10 } 11 12 func application( app uiapplication, open url url, options \[uiapplication openurloptionskey any] = \[ ]) > bool { 13 14 return fbsdkapplicationdelegate sharedinstance() application( 15 app, 16 open url, 17 sourceapplication options\[ sourceapplication] as? string, 18 annotation options\[ annotation] 19 ) 20 21 } 22 23 //make sure it isn't already declared in the app delegate (possible redefinition of func error) 24 func applicationdidbecomeactive( application uiapplication) { 25 fbsdkappevents activateapp() 26 } 4 로그인 및 회원가입 pfuser pfuser 는 사용자가 facebook을 통해 로그인하거나 회원가입할 수 있는 방법을 제공합니다 이는 다음과 같이 logininbackgroundwithreadpermissions logininbackgroundwithreadpermissions 메서드를 사용하여 수행됩니다 1 pffacebookutils logininbackground(withreadpermissions permissions) { 2 (user pfuser?, error error?) in 3 if let user = user { 4 if user isnew { 5 print("user signed up and logged in through facebook!") 6 } else { 7 print("user logged in through facebook!") 8 } 9 } else { 10 print("uh oh the user cancelled the facebook login ") 11 } 12 } 이 코드를 실행하면 다음과 같은 일이 발생합니다 사용자에게 facebook 로그인 대화 상자가 표시됩니다 사용자가 facebook을 통해 인증하고, 귀하의 앱은 handleopenurl handleopenurl 우리 sdk는 사용자의 facebook 액세스 데이터를 수신하고 이를 pfuser pfuser 동일한 facebook id를 가진 pfuser pfuser 가 존재하지 않으면 새로운 pfuser pfuser 가 생성됩니다 사용자와 함께 코드 블록이 호출됩니다 현재 사용자 참조가 이 사용자로 업데이트됩니다 permissions 인자는 귀하의 앱이 facebook 사용자로부터 요구하는 권한을 지정하는 문자열 배열입니다 이 권한은 읽기 권한만 포함해야 합니다 사용자가 귀하의 앱을 통해 예를 들어 그들의 대신 상태 업데이트를 게시할 수 있도록 게시 권한을 얻으려면, \[pffacebookutils logininbackgroundwithpublishpermissions ] logininbackgroundwithpublishpermissions ] 1 pffacebookutils logininbackgroundwithpublishpermissions(\["publish actions"], { 2 (user pfuser?, error nserror?) > void in 3 if user != nil { 4 // your app now has publishing permissions for the user 5 } 6 }) 5 연결하기 기존의 pfuser pfuser 를 facebook 계정에 연결하려면 다음과 같이 할 수 있습니다 1 if !pffacebookutils islinkedwithuser(user) { 2 pffacebookutils linkuserinbackground(user, withreadpermissions nil, { 3 (succeeded bool?, error nserror?) > void in 4 if succeeded { 5 print("woohoo, the user is linked with facebook!") 6 } 7 }) 8 } 6 연결 해제하기 사용자에서 facebook 연결을 해제하려면, 간단히 다음과 같이 하세요 1 pffacebookutils unlinkuserinbackground(user, { 2 (succeeded bool?, error nserror?) > void in 3 if succeeded { 4 print("the user is no longer associated with their facebook account ") 5 } 6 })