我提示用户连接到Strava,当我打开URL时,我得到了一个带有JSON的页面,告诉我这是一个错误的请求,我的重定向URI无效。
{ "message":"Bad Request",
"errors":[{
"resource":"Application",
"field":"redirect_uri",
"code":"invalid"
}]
}
字符串
当我做以下事情时,
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项目中的请求
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"
guard let authenticationUrl = URL(string: url) else { return }
authSession = ASWebAuthenticationSession(url: authenticationUrl, callbackURLScheme: "google.com") { url, error in
if let error = error {
print("error: \(error.localizedDescription)")
} else {
if let url = url {
print(url)
}
}
}
authSession?.presentationContextProvider = self
authSession?.start()
型
我还设法制作了一个通用链接,这样当一个人在已经下载了应用程序的情况下将此链接输入Safari时,它会直接指向应用程序。kette.netlify.app
我尝试过的一些事情:
- 在回调URI和重定向URI前面使用https://。iOS模拟器崩溃。
- 使用其他网址除了我的kette.netlify.app之一。
- 深度链接和通用链接。
任何帮助将不胜感激!非常感谢
1条答案
按热度按时间kulphzqa1#
有一个重定向URI的过程,即Strava只支持授权的重定向。所以,我们必须为回调设置一个域,然后我们就可以继续,而不会出现Invalid redirect_uri错误。
您可以从以下位置设置域:
Strava >设置>我的API应用程序>编辑>授权回调域>保存
在那里你必须设置
google.com
它不会接受像https
,http
等范围。**注意:**请记住,当您完成测试和在实际生产中时,请更改域。
对于您的回复,您可以在提到strava docs的地方检查。
验证后用户将重定向到的URL。必须在应用程序指定的回调域中。localhost和127.0.0.1已列入白名单。