Я пытаюсь создать клиент (в частном модуле) для подключения к API garmin (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)
})
AppDelegate:
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
if (url.host == "oauth-callback") {
OAuthSwift.handle(url: url)
}
return true
}
Итак, эта часть кода открывает страницу подключения garmin в сафари, я использую свою учетную запись mail/pwd для подключения и все. Обратный вызов никогда не завершается успешно или никогда не завершается ошибкой. Поэтому я не могу получить доступ к своим учетным данным. Это похоже на авторизацию (withCallBackURL...), не ждите обратного вызова и никогда не получайте информацию в URL-адресе (например, oauth-idenfitifier).
Я не понимаю, почему, если у вас есть идея, спасибо.