iOS
Facebook-Login in iOS mit Swift implementieren
11 min
fügen sie facebook login zu ihrer ios app mit swift hinzu einführung in diesem abschnitt wird erklärt, wie sie eine app mit benutzerregistrierung über facebook login und https //www back4app com/product/parse server über back4app erstellen können voraussetzungen um dieses schnellstartprojekt abzuschließen, benötigen sie https //developer apple com/xcode/ eine app, die bei back4app erstellt wurde befolgen sie das https //www back4app com/docs/get started/new parse app um zu lernen, wie man eine parse app bei back4app erstellt eine ios app, die mit back4app verbunden ist hinweis befolgen sie das https //www back4app com/docs/ios/parse objc sdk um ein xcode projekt zu erstellen, das mit back4app verbunden ist 1 facebook einrichten um die funktionen von facebook zu nutzen, müssen sie gehen sie zur https //developers facebook com/ und erstellen sie ein konto und eine app fügen sie die facebook anwendungs id ihrer anwendung auf der einstellungsseite ihrer parse anwendung hinzu befolgen sie die anweisungen von facebook für https //developers facebook com/docs/ios/getting started um eine app zu erstellen, die mit dem facebook sdk verknüpft ist 2 verknüpfen sie ihre facebook app mit back4app gehe zu deinem app dashboard unter https //www back4app com/ und klicke auf servereinstellungen servereinstellungen finde den block „facebook login“ und klicke auf einstellungen einstellungen der block „facebook login“ sieht so aus 3\ gehe zurück zu deinem xcode projekt, öffne deine info plist info plist kopiere den code von https //developers facebook com/docs/facebook login/ios , schritt 4a, punkt 2, und füge ihn in den \<dict> \</dict> \<dict> \</dict> teil deiner info plist ein 4\ um ein dialogfeld von facebook zu verwenden, kopiere und füge auch den code aus abschnitt 4a, punkt 3 in deine info plist info plist datei ein 5\ speichern 3 einrichtung deiner app füge folgendes zu deiner application\ didfinishlaunchingwithoptions methode hinzu, nachdem du das parse sdk initialisiert hast 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\ fügen sie die folgenden handler in ihrem app delegate hinzu 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 anmelden & registrieren pfuser pfuser bietet eine möglichkeit, ihren benutzern zu ermöglichen, sich über facebook anzumelden oder zu registrieren dies geschieht durch die verwendung der logininbackgroundwithreadpermissions logininbackgroundwithreadpermissions methode wie folgt 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 } wenn dieser code ausgeführt wird, passiert folgendes der benutzer sieht den facebook anmelde dialog der benutzer authentifiziert sich über facebook, und ihre app erhält einen callback mit handleopenurl handleopenurl unser sdk erhält die facebook zugangsdaten des benutzers und speichert sie in einem pfuser pfuser wenn kein pfuser pfuser mit derselben facebook id existiert, wird ein neuer pfuser pfuser erstellt ihr codeblock wird mit dem benutzer aufgerufen die aktuelle benutzerreferenz wird auf diesen benutzer aktualisiert das berechtigungsargument ist ein array von zeichenfolgen, das angibt, welche berechtigungen ihre app vom facebook benutzer benötigt diese berechtigungen dürfen nur lese berechtigungen enthalten um veröffentlichungsberechtigungen für einen benutzer zu erwerben, damit ihre app beispielsweise statusaktualisierungen in seinem namen posten kann, müssen sie \[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 verknüpfung wenn sie einen vorhandenen pfuser pfuser mit einem facebook konto verknüpfen möchten, können sie dies so tun 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 trennung wenn sie facebook von einem benutzer trennen möchten, tun sie einfach folgendes 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 })