请参阅我不知道这是声音云端的错误还是此lib的问题 https://github.com/OAuthSwift/OAuthSwift
所以基本上我对使用soundcloud api的身份验证方面存在问题,所以我使用的是以编程方式创建的webview,并将其附加到相同的视图中,效果很好。
问题是,一旦我尝试使用soundcloud中的一个选项进行身份验证,无论是Facebook,Gmail,屏幕只是空白而且在使用连接Facebook或Gmail时似乎没有进行身份验证我之所以这么说没有进行身份验证是因为没有在控制台中记录任何内容...并且电子邮件屏幕似乎卡住了,如下图所示......一旦完成身份验证就没有回调,这确实有效,因为有我在测试返回的数据时在控制台中输出。
func doOAuthSoundCloud(consumerKey: String, consumerSecret: String) {
let oauthswift = OAuth2Swift(
consumerKey: consumerKey,
consumerSecret: consumerSecret,
authorizeUrl: authorizeUrl,
accessTokenUrl: accessToken,
responseType: "code"
)
oauthswift.authorize_url_handler = AuthWebViewController()
let state: String = generateStateWithLength(20) as String
oauthswift.authorizeWithCallbackURL( NSURL(string: "oauthswiftexample://oauth-callback/soundcloud")!, scope: "", state: state, success: {
credential, response, parameters in
self.saveUserData(oauthswift,credential.oauth_token)
}, failure: { error in
print(error.localizedDescription)
})
}
func saveUserData(oauthswift: OAuth2Swift, _ oauthToken: String) {
oauthswift.client.get("https://api.soundcloud.com/me?oauth_token=\(oauthToken)",
success: {
data, response in
//let json = JSON(data: data)
print("Some data")
let dataString = NSString(data: data, encoding: NSUTF8StringEncoding)
let userData = JSON(dataString!)
print(userData)
print("Some response")
print(response)
print("Extra data")
}, failure: { error in
print(error)
})
}