根据文档。上下文是 3-legged oAuth。这是一个演示:https ://github.com/ringcentral/ringcentral-demos-oauth/tree/master/javascript
但是演示没有使用该handleredirectURI
方法。这意味着该方法只是一种实用方法,不需要使用它。
对于 的用法handleredirectURI
,我稍后会回来更新我的答案。
更新
这是源代码handleredirectURI
:https ://github.com/ringcentral/ringcentral-js/blob/669b7d06254d3620c5a5f24c94b401aa862be948/src/SDK.js#L115-L124
您可以看到该方法解析win.location
以获取一些有用的数据并postMessage
返回到它的开启程序。
单元测试handleredirectURI
:https ://github.com/ringcentral/ringcentral-js/blob/669b7d06254d3620c5a5f24c94b401aa862be948/src/SDK-spec.js#L27-L63
更新 2
我再次阅读handleredirectURI
了源代码、单元测试、示例代码,我认为它的用法就像它的文档中写的一样:
弹出设置
当您的应用程序在第三方网站上呈现为小部件时,此设置很好。
如果您只想在弹出窗口中打开 RingCentral 登录页面,您可以在应用程序的登录页面中使用以下简写:
var platform = rcsdk.platform();
var loginUrl = platform.loginUrl({implicit: true}); // implicit parameter is optional, default false
platform
.loginWindow({url: loginUrl}) // this method also allows to supply more options to control window position
.then(function (loginOptions){
return platform.login(loginOptions);
})
.then(...)
.catch(...);
在这种情况下,您的登录页面(重定向 URI 指向的页面)需要调用以下代码:
RingCentral.SDK.handleLoginRedirect();
解释:
- 运行第一个代码片段以打开登录弹出窗口。
- 在重定向到页面中,运行第二个代码片段(那一行代码)以完成其他所有操作。
- 之后,授权部分完成,您可以调用其他 API。
如果您有更多问题,请告诉我。