Sonos API 重定向 URI
Sonos API Redirect URI
我对 Sonos API 身份验证重定向 URI 有疑问。在以前的项目中,我使用了我的本机应用程序可以拦截的重定向 URI。比如myApp://auth-code
。这对于 Sonos API 似乎是不可能的,因为它期望重定向 URI 是公开可路由的和 HTTPS。我必须在本地客户端和 Sonos API 之间拥有自己的服务器吗?我有一种感觉,我可能在这里遗漏了一些简单的东西。谢谢你的时间。
只要有一个虚拟端点,例如重定向到您自己的自定义方案的 firebase 云函数,例如 location.href="myapp-scheme://..."
确保附加查询参数。
您还可以通过嵌入 safari webview 来避免打开外部浏览器。
如果您使用 WebView 显示 Sonos 授权页面,您可以检测显示的 WebView 的 url,然后您可以检测 WebView 何时加载重定向 Uri,获取它(使用代码)并做你的事。
这里有一个使用 Kotlin 的例子:
webView.webViewClient = object : WebViewClient() {
override fun onPageFinished(view: WebView, url: String) {}
override fun onPageStarted(view: WebView?, url: String?, favicon: Bitmap?) {
super.onPageStarted(view, url, favicon)
// Here you can get url and then Sonos code
if (url != null && url.contains(redirectUri) && url.contains("&code=")) doStuff()
}
}
我对 Sonos API 身份验证重定向 URI 有疑问。在以前的项目中,我使用了我的本机应用程序可以拦截的重定向 URI。比如myApp://auth-code
。这对于 Sonos API 似乎是不可能的,因为它期望重定向 URI 是公开可路由的和 HTTPS。我必须在本地客户端和 Sonos API 之间拥有自己的服务器吗?我有一种感觉,我可能在这里遗漏了一些简单的东西。谢谢你的时间。
只要有一个虚拟端点,例如重定向到您自己的自定义方案的 firebase 云函数,例如 location.href="myapp-scheme://..."
确保附加查询参数。
您还可以通过嵌入 safari webview 来避免打开外部浏览器。
如果您使用 WebView 显示 Sonos 授权页面,您可以检测显示的 WebView 的 url,然后您可以检测 WebView 何时加载重定向 Uri,获取它(使用代码)并做你的事。 这里有一个使用 Kotlin 的例子:
webView.webViewClient = object : WebViewClient() {
override fun onPageFinished(view: WebView, url: String) {}
override fun onPageStarted(view: WebView?, url: String?, favicon: Bitmap?) {
super.onPageStarted(view, url, favicon)
// Here you can get url and then Sonos code
if (url != null && url.contains(redirectUri) && url.contains("&code=")) doStuff()
}
}