Swift -(Strava API)错误请求,重定向URI无效

v09wglhw  于 2024-01-05  发布在  Swift
关注(0)|答案(1)|浏览(246)

我提示用户连接到Strava,当我打开URL时,我得到了一个带有JSON的页面,告诉我这是一个错误的请求,我的重定向URI无效。

  1. { "message":"Bad Request",
  2. "errors":[{
  3. "resource":"Application",
  4. "field":"redirect_uri",
  5. "code":"invalid"
  6. }]
  7. }

字符串
当我做以下事情时,

  1. https://www.strava.com/oauth/authorize?client_id={{clientId}}&redirect_uri=google.com&response_type=code&scope=read_all,activity:read_all,profile:read_all


我得到了这个错误。所以我知道当我在iOS模拟器上尝试这个的时候有什么问题。当我在Postman中这样做的时候,它似乎工作得很好。
下面是我在Swift中输入到Xcode项目中的请求

  1. let url: String = "https://www.strava.com/oauth/mobile/authorize?client_id=97936&redirect_uri=google.com%3A%2F%2F\(Keys.fallbackUrl)&response_type=code&approval_prompt=auto&scope=read"
  2. guard let authenticationUrl = URL(string: url) else { return }
  3. authSession = ASWebAuthenticationSession(url: authenticationUrl, callbackURLScheme: "google.com") { url, error in
  4. if let error = error {
  5. print("error: \(error.localizedDescription)")
  6. } else {
  7. if let url = url {
  8. print(url)
  9. }
  10. }
  11. }
  12. authSession?.presentationContextProvider = self
  13. authSession?.start()


我还设法制作了一个通用链接,这样当一个人在已经下载了应用程序的情况下将此链接输入Safari时,它会直接指向应用程序。kette.netlify.app

我尝试过的一些事情:

  • 在回调URI和重定向URI前面使用https://。iOS模拟器崩溃。
  • 使用其他网址除了我的kette.netlify.app之一。
  • 深度链接和通用链接。

任何帮助将不胜感激!非常感谢

kulphzqa

kulphzqa1#

有一个重定向URI的过程,即Strava只支持授权的重定向。所以,我们必须为回调设置一个,然后我们就可以继续,而不会出现Invalid redirect_uri错误
您可以从以下位置设置域:
Strava >设置>我的API应用程序>编辑>授权回调域>保存
在那里你必须设置google.com它不会接受像httpshttp等范围

**注意:**请记住,当您完成测试和在实际生产中时,请更改域。

对于您的回复,您可以在提到strava docs的地方检查。
验证后用户将重定向到的URL。必须在应用程序指定的回调域中。localhost和127.0.0.1已列入白名单。

相关问题