【发布时间】:2015-10-09 11:54:59
【问题描述】:
提前道歉,这个问题可能太含糊而不能被纳入良好的 StackOverflow 问题的大炮中。然而,它确实反映了我对该领域知识的当前状态。
Sonos 为第 3 方服务提供了向 Sonos 用户提供音乐服务访问权限的能力。这个我理解,Sonos提供的文档很全面。
但是,我们有Service Provider A为用户提供以下服务的场景:
- 访问流式广播(A 有权并可以提供流式传输)
- 访问点播/追赶内容(A 有权并可以提供流)
- 能够创建在 1 和 2 中播放的音乐的播放列表(A 没有权限,而是通过用户拥有帐户的一个或多个第 3 方音乐服务提供流)。
这在 A 自己的应用程序的上下文中非常有效 - 其中包括与 3rd 方音乐服务的集成,这些服务为低于 3 的内容提供流(即,如果您是 A 的用户,那么虽然您可以创建播放列表,如果您想实际播放播放列表中的曲目,则需要一个拥有该特定曲目权利的服务提供商的帐户。
但是,我很难在 Sonos 的背景下对此进行推理。
如果作为 A 的用户,我有以下容器:
容器1
- item1(属于服务 A 的“播客”)
- item2(歌曲,属于Service B)
我同时注册了服务 A 和服务 B,并且服务 A 和服务 B 在 Sonos 上分别可用,并且都使用 DeviceLink 进行身份验证(在本示例中假设服务 B 是 Spotify)。
如果用户请求容器,将 item1 添加到他们的队列中,然后按播放,播放器将向服务 A 请求流式 uri,服务 A 将以以下格式返回它:
http://service-a.uri/some-file
然后播放器将对这个 uri 执行 GET 请求,并且项目将开始播放。
但是,如果用户将 item2 添加到他们的队列中然后按下播放,则服务 A 将返回属于服务 B 的流式 uri,如下所示:
http://service-b.uri/some-file
在这种情况下,如何处理身份验证?
用户认证如下:
在服务 A 内:
- 致服务 A
- 通过服务 B 的 API 到服务 B。
在 Sonos 内:
- 致服务 A
- 致服务 B
但是,Sonos 会将服务 A 的凭据发送给服务 B,因此流将失败(因为它为什么会知道服务 A 与服务 B 具有预先存在的关系,而服务 A 用户使用来自服务 B 的内容,如果该用户已经拥有服务 B 的帐户)。
因此,在 Sonos 的背景下,我无法实现我想要做的事情,还是我从根本上误解了这里的某些东西?
【问题讨论】:
标签: sonos