在Twilio TaskRouter中创建Worker时出错

时间:2016-01-01 00:57:06

标签: nodes twilio

我正在使用Node js中的Twilio工作联络中心,因为我正在使用TaskRouter,但在下面的代码中收到错误。

 var capability = new twilio.TaskRouterWorkerCapability(accountSid,authToken, workspaceSid, workerSid);
    capability.allowActivityUpdates();
    capability.allowReservationUpdates();
    token = capability.generate();
    agent = new twilio.TaskRouter.Worker(token); // Here getting below error.

TypeError: Cannot read property 'Worker' of undefined 

我错过了什么吗?以及如何更新特定工作人员的活动。我做了以下代码更改,但它没有更新Worker的状态或活动。

client.workspace.workers(workerSid).update({
        /*attributes: '{"type":"support"}',*/
        ActivitySid:'WAa8affefa7a655a86201f05317bfd2ba4' // idle
    }, function(err, worker) {
        console.log(worker.sid);
    })

1 个答案:

答案 0 :(得分:0)

Twilio员工在这里。

您是否尝试从客户端或节点服务器更新Worker的活动?

前者是代理商更新其状态的关键(这是最常见的)。虽然如果要强制代理进入TaskRouter不会自动执行的特定状态,那么您可以在服务器端执行此操作。

从JS客户端更新工作人员活动

从JWT生成角度来看,一切看起来都不错,但是您需要将令牌返回给JS客户端以启动Worker JS。

<script type="text/javascript" src="//media.twiliocdn.com/taskrouter/js/v1.2/taskrouter.min.js"></script>
<script type="text/javascript">
    var workerToken = generateWorkerToken(); // calls your node server to generate the JWT
    var worker = new Twilio.TaskRouter.Worker(workerToken);
    worker.update({"ActivitySid":"WAa8affefa7a655a86201f05317bfd2ba4"},
        function(err, worker) {
            console.log(worker.sid);
        });
</script>

有关TaskRouter Worker.js的更多信息,您可以在此处查看:https://www.twilio.com/docs/api/taskrouter/worker-js

从节点服务器更新工作人员活动

如果您希望从节点服务器更新Worker的Activity,则无需生成JWT,因为这是用于客户端身份验证。

您可以简单地利用您已经在做的功能:

var client = new twilio.TaskRouterClient('AC123', '123', 'WS123');
client.workspace.workers(workerSid).update({
    /*attributes: '{"type":"support"}',*/
    ActivitySid:'WAa8affefa7a655a86201f05317bfd2ba4' // idle
}, function(err, worker) {
    console.log(worker.sid);
})

关键是 twilio 表示节点服务器端使用,其中 Twilio.TaskRouter.Worker 表示客户端使用。