Как настроить URL-адрес обратного вызова в библиотеке OauthSwift

Я работаю над проектом, в котором я реализую библиотеку OAuthSwift для подключения к нескольким сайтам социальных сетей, которые используют OAuth1 и OAuth2.

У меня есть приложение, настроенное для загрузки веб-представления, которое выводит меня на мой сайт социальной сети, но я не могу заставить приложение перенаправлять обратно. Как только я загружу свои учетные данные, он просит меня дать разрешение на авторизацию приложения, но как только я это сделаю, он загружает мою домашнюю страницу для сайта социальной сети.

Я могу вернуться к приложению, но он не регистрируется, что получил разрешение на доступ к моей учетной записи.

Это мой первый опыт работы с OAuth, и я считаю URL-адрес обратного вызова путаным.

Я был бы признателен за помощь в объяснении того, как заставить веб-представление перенаправить обратно в мое приложение и как настроить URL-адрес приложения.

class ViewController: UIViewController {

override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } @IBAction func postToTumblr(sender: AnyObject) { let oauthSwift = OAuth1Swift( consumerKey: "consumerKey", consumerSecret: "secretKey", requestTokenUrl: "https://www.tumblr.com/oauth/request_token", authorizeUrl: "https://www.tumblr.com/oauth/authorize", accessTokenUrl: "https://www.tumblr.com/oauth/access_token" ) oauthSwift.authorizeWithCallbackURL(NSURL(string: "com.myCompany.sampleApp")!, success: { credential, response in // post to Tumblr print("OAuth successfully authorized") }, failure: {(error:NSError!) -> Void in self.presentAlert("Error", message: error!.localizedDescription) }) } func presentAlert(title: String, message: String) { let alert = UIAlertController(title: title, message: message, preferredStyle: .Alert) alert.addAction(UIAlertAction(title: "OK", style: .Default, handler: nil)) self.presentViewController(alert, animated: true, completion: nil) } 

}

One Solution collect form web for “Как настроить URL-адрес обратного вызова в библиотеке OauthSwift”

Поговорив с некоторыми людьми в моей компании и просмотрев библиотеку, мы смогли решить проблему следующим образом:

Библиотека OAuthSwift распаковывает часть «com.myCompany» в схеме URL. Когда он ищет URL-адрес обратного вызова, он ищет имя приложения, за которым следует «: // oauth-callback».

Поэтому вместо:

 oauthSwift.authorizeWithCallbackURL(NSURL(string: "com.myCompany.sampleApp")! 

он искал:

 oauthSwift.authorizeWithCallbackURL(NSURL(string: "tumblrsampleapp://oauth-callback")! 

Я также должен был зарегистрировать схему URL в info.plist как:

 <key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleURLSchemes</key> <array> <string>tumblrsampleapp</string> </array> </dict> </array> 

Наконец, я должен был добавить следующий метод в App Delegate:

 func application(app: UIApplication, openURL url: NSURL, options: [String : AnyObject]) -> Bool { OAuth1Swift.handleOpenURL(url) return true } 

Это решило проблему, и приложение теперь аутентифицируется надлежащим образом и возвращается обратно в мое приложение.

Надеюсь, это полезно для всех, кто пытается реализовать OAuth1, используя библиотеку OAuthSwift.

Interesting Posts

как получить номер телефона пользователя, используя loginViewFetchedUserInfo?

iOS9 popover всегда указывает на верхний левый угол привязки

Пути пучковForResourcesOfType: inDirectory:

Не удается создать среду OpenCV для iOS

Контекстный тип «NSFastEnumeration» не может использоваться с литералом массива

iOS – облегченная миграция – непризнанный селектор

Получение нерелевантных ошибок при изменении ориентации в iOS 7

Есть ли библиотека / код выбора цвета для разработки iPhone?

Как перейти к добавлению ссылки / ссылки на другой метод в документации Xcode?

Firebase Retrieve Data – не может отличить значение

Как можно реализовать скользящие UITableViewCells?

Отображение основных данных: если атрибут имеет одно и то же имя дисплея один раз

Нет Shadow / Emboss на UIBarButtonItem

iOS: Apple Universal Link continueUserActivity метод не вызывает, если приложение не установлено?

UIButton не отвечает на «touchUpInside», но будет реагировать на «touchDown»

PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.