0

用例场景:

如果 ServiceNow 中发生优先级 1 事件,我们需要自动化系统以与 Circuit 应用程序中的预定用户开始会议。

用于创建对话的 REST API 可用,但不能用于开始会议。

我们需要避免人工干预,并在创建优先级 1 事件时自动启动会议。

查询:

1) 请告知我们是否有任何方法可以实现这一点,否则电路团队将有一些开发计划来开发 API 以自动启动会议。

2)如果我们使用JS SDK,它具有创建和开始会议的功能,那么我们每次从ServiceNow开始会议时都需要登录。

3) 对于 JS SDK(隐式授权类型),授权如何为最终用户工作。电路中生成的客户端 ID 将如何用于每个最终用户。最终用户可以使用自己的电路凭据来创建和开始会议。

4)当我使用JS SDK开始会议时,会议正在我的ServiceNow应用程序中开始,然后我需要拉取请求是电路应用程序。有什么方法可以直接在电路应用程序中开始会议。

4

1 回答 1

0
  1. 有一个未记录的 REST API ( /remote/call/start) 可以在用户的​​ Web 客户端或桌面客户端上启动调用。请注意,此 API 未记录在案,这意味着不能保证向后兼容,但它可能会保持向后兼容。可destClientId用于在特定设备上启动呼叫。例如,如果用户正在运行桌面客户端和 Web 客户端,您可以指定哪一个。如果未提供但用户登录到多个设备,则会显示提示以启动呼叫。使用 API/telephony/deviceInfos获取 destClientIds。
    await this.axios.post('/remote/call/start',{
      mediaType: 'audio',  // audio, video or telephony
      destClientId: ...,   // optional. client id of user's device to start call on
      emailAddress: ...,   // email of user to call, only for direct call
      phoneNumber: ...,    // dialabe phone number
      convId: ...          // conversation ID, used for group calls
    });
  1. 如果用户仍然有一个电路会话(如果用户使用选中“私人计算机”的电路客户端,则为 30 天)并且访问令牌根据应用程序注册中的 TTL 设置仍然有效,则 JS SDK 可以在用户没有登录的情况下登录输入任何凭据,或接受权限。logonCheck可用于自动登录。

  2. 你的问题在这里。对于隐式,应用程序的 clientId 是在应用程序 JS 代码中硬编码的。但是由于 client_id 被限制在注册域上使用,所以没有其他人可以使用您的 client_id。登录显示在 circuit-sdk github 页面:

    const client = new Circuit.Client({
      client_id: '<your client_id>',
      domain: '<circuit domain>  // e.g. circuitsandbox.net
    });
    const user = await client.logon();
  1. 是的,使用 API startConference并传递您希望开始呼叫的客户端的 clientId(又名 destClientId)。使用getDevices查找用户的 clientIds。这与上面 #1 中描述的 REST API 相同。
于 2020-06-01T11:55:48.907 回答