是否可以使用 HTML5 音频元素播放 RingCentral 通话录音?

Is it possible to playback a RingCentral call recording using a HTML5 audio element?

当使用 RingCentral Call Log 访问通话记录音频文件时,contentUriresponse.record[x].recording object 中提供,它指向二进制形式的通话音频。 API 的 Authorization header 仍然需要检索此文件。

是否可以使用 HTML5 音频元素在网络应用程序中播放此内容,这样我们就不必 host/upload 将音频调用到我们自己的系统。似乎这需要避免使用 Authorization header 并以其他方式提供授权。例如:

<audio src="https://media.ringcentral.com/.../recording/{recordingId}"></audio>

有关 HTML5 音频元素的更多信息,请参见此处:

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/audio

可以使用 HTML5 音频元素播放 RingCentral 通话录音,而无需自行下载和托管音频文件。仍然需要授权,因此必须使用 HTTP header.

以外的方法进行传递

两种方法包括:

1) 查询字符串中的访问令牌

您可以将访问令牌附加到媒体 URL 作为查询参数,这样您就可以得到如下内容:

<audio 
  src="https://media.ringcentral.com/.../{recordingId}?access_token=MyToken">
</audio>

此方法的一个警告是 URL 将在访问令牌过期时停止工作,通常是在一小时或更短的时间内。这对于聊天流中的临时 links 例如 time-sensitive links 很有用,但是,如果稍后需要检索 link 则不太有用。为此,请参阅以下方法。

2) Cookie 中的访问令牌

如果您想要一个不会过期的永久 URL,您可以使用代理服务来为您管理身份验证。一种方法是使用 RingCentral cookie-based 隐式授权 OAuth 流程将访问令牌传输到代理服务。这样,当尝试通过 URL(没有令牌)检索媒体文件时,代理服务可以检查 cookie 是否存在且有效。如果不是,则代理服务可以在转发到呼叫记录媒体文件之前提示成功的隐式授权登录。此处提供了一个示例实现:

https://github.com/tylerlong/permalink