我正在尝试创建一个客户端(在私有 pod 中)以连接到 garmin API(OAuth1),但我遇到了一些问题。我正在使用 OAuthSwift 和 OAuthSwiftAlamofire
首先,我试图获得所有授权,
let oauthswift = OAuth1Swift(
consumerKey: "*****************",
consumerSecret: "****************",
requestTokenUrl: "http://connectapitest.garmin.com/oauth-service-1.0/oauth/request_token",
authorizeUrl: "http://connecttest.garmin.com/oauthConfirm",
accessTokenUrl: "http://connectapitest.garmin.com/oauth-service-1.0/oauth/access_token"
)
oauthswift.authorizeURLHandler = SafariURLHandler(viewController: self, oauthSwift: oauthswift)
let _ = oauthswift.authorize(
withCallbackURL: URL(string: "https://www.****.co/api/v2/garminCallback")!,
success: { credential, response, parameters in
print("Success")
print(credential.oauthToken)
print(credential.oauthTokenSecret)
print(credential.oauthVerifier)
},
failure: { error in
print("Error")
print(error.localizedDescription)
})
应用代理:
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
if (url.host == "oauth-callback") {
OAuthSwift.handle(url: url)
}
return true
}
因此,这部分代码在 safari 中打开了 garmin 的连接页面,我使用我的帐户 mail/pwd 进行连接,仅此而已。回调永远不会成功,或者永远不会失败。所以我无法访问我的凭据。这就像 authorize(withCallBackURL...) 不要等待 callBack 并且永远不会获取 URL 中的信息(如 oauth-identifier )。
我不明白为什么,如果你有一个想法谢谢。