iOS
Интеграция Twitter входа в iOS приложение на Swift
8 мин
добавьте вход через twitter в ваше ios приложение с использованием swift введение в этом разделе объясняется, как вы можете создать приложение с регистрацией пользователей с использованием входа через twitter и основными функциями parse server через back4app предварительные требования чтобы завершить этот быстрый старт, вам нужно xcode приложение, созданное на back4app следуйте учебнику по созданию нового parse приложения чтобы узнать, как создать приложение parse на back4app ios приложение, подключенное к back4app примечание следуйте учебнику по установке parse sdk (objc) чтобы создать проект xcode, подключенный к back4app 1 настройка twitter чтобы начать использовать функции twitter, вам нужно перейдите на сайт управления приложениями twitter , войдите с помощью учетной записи twitter и нажмите на создать новое приложение создать новое приложение добавьте ключ потребителя twitter вашего приложения на странице настроек вашего приложения parse когда вас попросят указать «url обратного вызова» для вашего приложения twitter, пожалуйста, вставьте действительный url, например http //twitter oauth callback http //twitter oauth callback это значение не будет использоваться вашим приложением для ios или android, но необходимо для включения аутентификации через twitter добавьте accounts framework и social framework social framework библиотеки в ваш проект xcode добавьте следующее там, где вы инициализируете sdk parse, например, inapplication\ didfinishlaunchingwithoptions inapplication\ didfinishlaunchingwithoptions 1 pftwitterutils initializewithconsumerkey("your consumer key", consumersecret "your consumer secret") 2 вход и регистрация pftwitterutils pftwitterutils предоставляет способ позволить вашим pfusers pfusers войти в систему или зарегистрироваться через twitter это достигается с помощью loginwithblock loginwithblock или loginwithtarget loginwithtarget сообщений 1 pftwitterutils loginwithblock { 2 (user pfuser?, error nserror?) > void in 3 if let user = user { 4 if user isnew { 5 print("user signed up and logged in with twitter!") 6 } else { 7 print("user logged in with twitter!") 8 } 9 } else { 10 print("uh oh the user cancelled the twitter login ") 11 } 12 } когда этот код выполняется, происходит следующее пользователю показывается диалог входа в twitter пользователь аутентифицируется через twitter, и ваше приложение получает обратный вызов наш sdk получает данные twitter и сохраняет их в pfuser pfuser если это новый пользователь на основе twitter аккаунта, то этот пользователь создается ваш блок блок вызывается с пользователем 3 связывание с twitter если вы хотите связать существующий pfuser pfuser с аккаунтом twitter, вы можете связать его следующим образом 1 if !pftwitterutils islinkedwithuser(user) { 2 pftwitterutils linkuser(user, { 3 (succeeded bool?, error nserror?) > void in 4 if pftwitterutils islinkedwithuser(user) { 5 print("woohoo, user logged in with twitter!") 6 } 7 }) 8 } шаги, которые происходят при связывании, очень похожи на вход в систему разница в том, что при успешном входе существующий pfuser обновляется с информацией twitter будущие входы через twitter теперь будут входить пользователя в его существующий аккаунт если вы хотите отвязать twitter от пользователя, просто сделайте следующее 1 pftwitterutils unlinkuserinbackground(user, { 2 (succeeded bool?, error nserror?) > void in 3 if error == nil && succeeded { 4 print("the user is no longer associated with their twitter account ") 5 } 6 }) 6 вызовы api twitter наш sdk предоставляет простой способ подписывать ваши http запросы api к twitter rest api https //dev twitter com/rest/public когда ваше приложение связано с twitter pfuser pfuser чтобы сделать запрос через наш api, вы можете использовать pf twitter pf twitter синглтон, предоставленный pftwitterutils pftwitterutils 1 let verify = nsurl(string "https //api twitter com/1 1/account/verify credentials json") 2 var request = nsmutableurlrequest(url verify!) 3 pftwitterutils twitter()! signrequest(request) 4 let task = nsurlsession sharedsession() datataskwithrequest(request) { data, response, error in 5 // check for error 6 // data will contain the response data 7 } 8 task resume()