0

我正在开发一个 iPhone 应用程序,我需要在其中使用 hubspot 实现登录。为了实现这一点,我在 swift 中使用了 oauth2 库。在这个我使用下面的代码来做授权。当我运行该应用程序时,它会将我导航到 safari 并要求输入 Hubspot 的 ID 和密码。当我进入它时,它只会让我留在网站内并显示 3 个点正在加载。

{
let oauthswift = OAuth2Swift(
consumerKey: "****",
consumerSecret: "****",
authorizeUrl: "https://app.hubspot.com/oauth/authorize",
accessTokenUrl: "https://api.hubapi.com/oauth/v1/token",
responseType : "code"
)
oauthswift.authorize(withCallbackURL: URL(string: "myapp://"), scope: "contacts", state:"code", success: { (credentials, response, parameters) in
print(response as Any)
}, failure: { (error) in
print(error)
})

}
4

1 回答 1

0

我认为您忘记了将自定义 URL 方案添加到您的应用程序。您必须转到目标设置,打开选项卡信息并在“URL 类型”下添加新的 URL 方案。请记住将“URL 方案”设置为与您的回调 URL 方案相同的值(myapp在您的情况下,但我会建议您更改为更特定于您的应用程序的内容,例如您的包 ID)。此外,您必须在 AppDelegate中实现application(_:open:options:)方法 ( Docs ):

func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey  : Any] = [:]) -> Bool {
  if (url.host == "myapp") {
    OAuthSwift.handle(url: url)
  }
  return true
}

所有这些步骤都写在这个库中读我:https ://github.com/OAuthSwift/OAuthSwift

这就是URL Types部分的样子(记住你必须把你的回调 URL 方案 - myappURL 类型面板

于 2019-06-26T13:07:13.957 回答