我正在使用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);
})
答案 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 表示客户端使用。