我对Sonos API身份验证重定向URI有疑问。在以前的项目中,我使用了本机应用程序可以拦截的重定向URI。如myApp://auth-code
。 Sonos API似乎无法做到这一点,因为它期望重定向URI可公开路由和使用HTTPS。我必须在本地客户端和Sonos API之间拥有自己的服务器吗?我觉得我可能在这里缺少一些简单的东西。感谢您的宝贵时间。
答案 0 :(得分:1)
只有一个虚拟端点,例如firebase云功能,可重定向到您自己的自定义方案,例如location.href =“ myapp-scheme:// ...”
确保附加查询参数。
您还可以通过嵌入野生动物园网络视图来避免打开外部浏览器。
答案 1 :(得分:0)
如果使用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()
}
}