gpt4 book ai didi

ios - 如何在 OauthSwift 库中设置回调 URL

转载 作者:可可西里 更新时间:2023-11-01 17:14:55 33 4
gpt4 key购买 nike

我正在开展一个项目,我正在实现 OAuthSwift 库以连接到同时使用 OAuth1 和 OAuth2 的几个不同的社交网站。

我已将应用程序设置为加载一个将我带到我的社交网站的 Web View ,但我无法让该应用程序重定向回来。一旦我加载了我的凭据,它就会要求我授予应用程序授权权限,但一旦我这样做,它就会加载我的社交网站主页。

我可以导航回应用程序,但它没有注册它已获得访问我的帐户的权限。

这是我第一次使用 OAuth,我发现回调 URL 令人困惑。

如果能帮助我解释如何让 Web View 重定向回我的应用程序以及如何为应用程序设置 URL,我将不胜感激。

类 View Controller :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)
}

最佳答案

在与我公司的一些人交谈并让他们查看图书馆后,我们能够按如下方式解决问题:

OAuthSwift 库删除了 URL 方案的“com.myCompany”部分。当它寻找回调 URL 时,它会寻找后跟“://oauth-callback”的应用程序名称。

所以代替:

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

它正在寻找:

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

我还必须在 info.plist 中将 URL 方案注册为:

<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
}

这已经解决了问题,应用程序现在可以正确验证并返回到我的应用程序。

我希望这对尝试使用 OAuthSwift 库实现 OAuth1 的其他人有用。

关于ios - 如何在 OauthSwift 库中设置回调 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33788368/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com