我正在尝试构建一个使用 RingCentral PHP SDK 订阅存在事件的 Web 应用程序。应用程序将使用授权码流。我正在获取访问令牌,但不知道如何将此令牌与 SDK 和平台对象一起使用。看起来 SDK 适合使用密码流。
POST /restapi/v1.0/subscription HTTP/1.1
我应该使用普通 curl在授权标头中调用传递访问令牌吗?或者有办法使用 RingCentral SDK 对象吗?我错过了什么吗?
我正在尝试构建一个使用 RingCentral PHP SDK 订阅存在事件的 Web 应用程序。应用程序将使用授权码流。我正在获取访问令牌,但不知道如何将此令牌与 SDK 和平台对象一起使用。看起来 SDK 适合使用密码流。
POST /restapi/v1.0/subscription HTTP/1.1
我应该使用普通 curl在授权标头中调用传递访问令牌吗?或者有办法使用 RingCentral SDK 对象吗?我错过了什么吗?
如果您可以提供有关您的用例以及如何实现代码的更多信息,我可以提供更多详细信息。
要使用 PHP SDK 创建订阅,这里是Github 上 RingCentral PHP SDK 存储库中包含的演示代码
TL;博士
我看到有人问两个问题:
Password Flow
?授权流程是构建多租户应用程序的最佳实践,因为它消除了应用程序存储与 RingCentral 帐户关联的用户名和密码的安全风险。RingCentral PHP SDK 支持授权流程和密码流程认证类型。一旦您的 PHP SDK 实例有效
access_token
,它就可以很容易地创建订阅。我们可以在 Github 上的 PHP SDK 代码
src/Platform.php
中看到,该常量AUTHORIZE_ENDPOINT
被支持作为来自对authUrl()的请求的可返回值。您可以在PHP SDK 支持的Grokify 的 RingCentral OAuth PHP 示例中看到。
Authorization Flow
一旦您的 SDK 实例具有有效的
access_token
,它将Authorization
在您 createSubscription()、addListeners() 和 register() 时在标头中使用该令牌,如此 PHP 演示代码中所示,以创建订阅
您可以通过多种方式使用 RingCentral SDK。我在上面的 TL;DR 中提供了关于创建订阅的 PHP 演示链接。
由于您使用的是RingCentral PHP SDK,因此您仅限于服务器端实现,因为 PHP 是一种仅限服务器端的语言。
如何选择实现订阅完全取决于应用程序的用例需求和架构要求。由于您已经表明您正在使用Authorization Flow,这让我相信您正在构建一个多租户、基于 Web 的应用程序集成。既然你说你得到了一个
access_token
,我猜你已经调用了Platform.login()并将你从 3-Legged 身份验证请求中收到并在重定向中收到的代码值传递给它。/restapi/oauth/authorize
我不确定您是从客户端还是服务器执行所有这些操作,但我假设是服务器。
您需要将会话与服务器端的 SDK 实例和订阅相关联。这意味着您必须为每个客户端会话管理多个 SDK 和订阅实例。您可能还需要实现 WebSockets 或 Long-Polling,以便实现订阅启用的近乎实时的事件更新。因此,虽然 RingCentral PHP SDK 可以与 Authorization Flow 一起使用,但我个人建议不要将它用于任何最终用户、客户端、多租户应用程序开发(除非您已为将会话映射到 SDK 做好了适当的准备) /Subscription 实例,如我之前所述。
如果您不想在服务器端管理所有这些,您可以在 PHP 应用程序的客户端使用RingCentral JS SDK,但这可能会有点混乱,并且需要重新构建您的解决方案,具体取决于取决于你如何建造东西。当然,这种方法具有数据易失性方面,这取决于您想对从订阅中获得的数据做什么,以及是否需要它在会话之间持续存在(再次取决于您的用例)。