new Twilio.TaskRouter.Workspace() 给出 WebSocket 意外响应代码:403
new Twilio.TaskRouter.Workspace() gives WebSocket Unexpected response code: 403
所以我有以下代码:
<?php
// Get the PHP helper library from https://twilio.com/docs/libraries/php
require_once '../vendor/autoload.php'; // Loads the library
use Twilio\Jwt\TaskRouter\WorkerCapability;
// Your Account Sid and Auth Token from twilio.com/user/account
$accountSid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
$authToken = "your_auth_token";
$workspaceSid = "WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
$capability = new WorkerCapability($accountSid, $authToken, $workspaceSid);
$capability->allowFetchSubresources();
$capability->allowActivityUpdates();
$capability->allowReservationUpdates();
$token = $capability->generateToken();
// By default, tokens are good for one hour.
// Override this default timeout by specifiying a new value (in seconds).
// For example, to generate a token good for 8 hours:
$token = $capability->generateToken(28800); // 60 * 60 * 8
?>
<script type="text/javascript" src="//media.twiliocdn.com/taskrouter/js/v1.20/taskrouter.min.js"></script>
<script>
var workspace = new Twilio.TaskRouter.Workspace("<?= $token ?>");
</script>
PHP 代码可以很好地生成令牌,但 JS 会生成以下错误:
WebSocket connection to '...' failed: Error during WebSocket handshake: Unexpected response code: 403
有什么想法吗?
谢谢!
您正在 JWT 中设置 WorkerCapability
,但正试图将其与 SDK Workspace
对象一起使用。我相信如果你想从 SDK 中实例化一个 Workspace
对象,你需要使用一个 WorkspaceCapability
令牌。
所以我有以下代码:
<?php
// Get the PHP helper library from https://twilio.com/docs/libraries/php
require_once '../vendor/autoload.php'; // Loads the library
use Twilio\Jwt\TaskRouter\WorkerCapability;
// Your Account Sid and Auth Token from twilio.com/user/account
$accountSid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
$authToken = "your_auth_token";
$workspaceSid = "WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
$capability = new WorkerCapability($accountSid, $authToken, $workspaceSid);
$capability->allowFetchSubresources();
$capability->allowActivityUpdates();
$capability->allowReservationUpdates();
$token = $capability->generateToken();
// By default, tokens are good for one hour.
// Override this default timeout by specifiying a new value (in seconds).
// For example, to generate a token good for 8 hours:
$token = $capability->generateToken(28800); // 60 * 60 * 8
?>
<script type="text/javascript" src="//media.twiliocdn.com/taskrouter/js/v1.20/taskrouter.min.js"></script>
<script>
var workspace = new Twilio.TaskRouter.Workspace("<?= $token ?>");
</script>
PHP 代码可以很好地生成令牌,但 JS 会生成以下错误:
WebSocket connection to '...' failed: Error during WebSocket handshake: Unexpected response code: 403
有什么想法吗?
谢谢!
您正在 JWT 中设置 WorkerCapability
,但正试图将其与 SDK Workspace
对象一起使用。我相信如果你想从 SDK 中实例化一个 Workspace
对象,你需要使用一个 WorkspaceCapability
令牌。