iOS
Интеграция Facebook Входа в iOS на Swift
11 мин
добавьте вход через facebook в ваше ios приложение с помощью swift введение в этом разделе объясняется, как вы можете создать приложение с регистрацией пользователей с использованием входа через facebook и основные функции parse server через back4app предварительные требования чтобы завершить этот быстрый старт, вам нужно xcode приложение, созданное на back4app следуйте за учебником по созданию нового parse приложения чтобы узнать, как создать приложение parse на back4app ios приложение, подключенное к back4app примечание следуйте за учебником по установке parse sdk (objc) чтобы создать проект xcode, подключенный к back4app 1 настройка facebook чтобы начать использовать функции facebook, вам нужно перейдите на сайт разработчиков facebook и создайте учетную запись и приложение добавьте идентификатор приложения facebook вашего приложения на странице настроек вашего приложения parse следуйте инструкциям facebook по началу работы с facebook sdk https //developers facebook com/docs/ios/getting started для создания приложения, связанного с facebook sdk 2 свяжите ваше приложение facebook с back4app перейдите на панель управления вашим приложением по адресу сайт back4app и нажмите на настройки сервера настройки сервера найдите блок “facebook login” и нажмите на настройки настройки блок “facebook login” выглядит так 3\ вернитесь к вашему проекту xcode, откройте ваш info plist info plist скопируйте код из конфигурация facebook , шаг 4a, пункт 2, и вставьте его в \<dict> \</dict> \<dict> \</dict> часть вашего info plist 4\ чтобы использовать диалоговое окно от facebook, также скопируйте и вставьте код из раздела 4a, пункт 3 в ваш info plist info plist файл 5\ сохраните 3 настройка вашего приложения добавьте следующее в метод application\ didfinishlaunchingwithoptions , после инициализации sdk parse 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 если не существует pfuser pfuser с тем же идентификатором facebook, то создается новый pfuser pfuser ваш блок кода вызывается с пользователем ссылка на текущего пользователя будет обновлена на этого пользователя аргумент разрешений — это массив строк, который указывает, какие разрешения ваше приложение требует от пользователя 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 })