TaskRouter.js Workspace:ブラウザーでリソースを管理する
SDKにより、開発者はシンプルなJS APIでTaskRouterの全REST APIを使用できます。
アプリケーションに SDK を追加する
以下のように、TaskRouter JS SDK を JavaScript アプリケーションに取り込みます。
<script src="https://sdk.twilio.com/js/taskrouter/v1.21/taskrouter.min.js" integrity="sha384-5fq+0qjayReAreRyHy38VpD3Gr9R2OYIzonwIkoGI4M9dhfKW6RWeRnZjfwSrpN8" crossorigin="anonymous"></script>
TaskRouter Workspaceケイパビリティートークンの作成
TaskRouterは Twilioケイパビリティートークンを使って、TaskRouterリソースへのスコープ宣言されたアクセスをJavaScriptアプリケーションに委託します。 Twilioのケイパビリティートークンは、第三者による使用時間の限定されたクレデンシャルを実現するJSON Web Token (JWT) 標準に適合しています。 TaskRouter Workspaceを登録するには、Webサーバーは Twilioケイパビリティートークンを生成し、それをJavaScriptアプリケーションに提供する必要があります。
アクセス機能を提供する5つのヘルパーメソッドを提供しています (メモ: これらは現在Node.jsライブラリーでは利用できません):
Capability | 認証 |
---|---|
AllowFetchSubresources | Workspaceは任意のサブリソースを取得できます。 |
AllowUpdates | Workspaceはプロパティーを更新できます。 |
AllowUpdatesSubresources | WorkspaceはWorkspace自体および任意のサブリソースを更新できます。 |
AllowDelete | Workspaceは自信を削除できます |
AllowDeleteSubresources | WorkspaceはWorkspace自体および任意のサブリソースを削除できます。 |
さらに、これらのケイパビリティーを越え、特定のリソースへのアクセスをもっと細かく利用できます。これは、「JWT の構築」で参照できます。
Twilioのどのヘルパーライブラリーを使用しても、TaskRouterケイパビリティートークンを生成できます。 登録したいWorkspaceに、TwilioのAccountSidとAuthToken、WorkspaceSidを渡す必要があります。 たとえば、PHPヘルパーライブラリーを使用する場合、次のようにしてトークンを作成し、ケイパビリティーを追加できます。
TaskRouterのケイパビリティートークンの生成ができたら、これをフロントエンドのWebアプリケーションに渡して、下記のようにJavaScriptライブラリーを初期化できます。
var workspace = new Twilio.TaskRouter.Workspace(WORKSPACE_TOKEN);
このライブラリがTaskRouterに接続されると、「ready」Eventが発生します。
workspace.on("ready", function(workspace) { console.log(workspace.sid) // 'WSxxx' console.log(workspace.friendlyName) // 'Workspace 1' console.log(workspace.prioritizeQueueOrder) // 'FIFO' console.log(workspace.defaultActivityName) // 'Offline' });
このオブジェクトで公開されているメソッドとイベントについては、下記をご覧ください。
Workspace API
TaskRouter.js Workspace は、以下の API を公開しています。
Twilio.TaskRouter.Workspace
Twilio.TaskRouter.Workspaceは、Workspaceの管理に使う最上位のクラスです。
new Twilio.TaskRouter.Workspace(workspaceToken)
workspaceToken
で提供されているケイパビリティーで新しい Twilio.TaskRouter.Workspace を登録します。
パラメーター
名前 | Type | 概要 |
---|---|---|
workspaceToken | 文字列 | Twilio TaskRouterケイパビリティートークン。詳細については、TaskRouterケイパビリティートークンの作成をご覧ください。 |
debug | boolean | (オプション)JS SDKがEventメッセージをコンソールに出力するかどうかを示します。初期値は true です。 |
region | 文字列 | (optional) A Twilio region for websocket connections (ex. ie1-ix ). |
maxRetries | integer | (optional) The maximum of retries to attempt if a websocket request fails. Defaults to 0. |
使用例
var workspace = new Twilio.TaskRouter.Workspace(WORKSPACE_TOKEN);
デバッグを無効にします。
var workspace = new Twilio.TaskRouter.Workspace(WORKSPACE_TOKEN, false);
メソッド
update([args...], [resultCallback])
Workspaceの単一のプロパティーまたはプロパティーの一覧を更新します。
パラメーター
名前 | Type | 概要 |
---|---|---|
args... | 文字列または JSON | 単一の API パラメーターおよび値、または複数の値を含む JSON オブジェクト。 |
resultCallback | 関数 | (オプション)更新の結果、呼び出されるJavaScript関数です。 エラーが発生した場合は、この関数に最初に渡される引数がエラーになります。 更新が成功した場合は、最初の引数はnullになり、2番目の引数に更新されたWorkspaceオブジェクトが渡されます。 |
単一の属性の例
workspace.update("EventCallbackUrl", "http://requestb.in/1kmw9im1", function(error, workspace) { if(error) { console.log(error.code); console.log(error.message); } else { console.log(workspace.eventCallbackUrl); // "http://requestb.in/1kmw9im1" } });
複数の属性の例
var props = {"EventCallbackUrl", "http://requestb.in/1kmw9im1", "TimeoutActivitySid":"WAxxx"}; workspace.update(props, function(error, workspace) { if(error) { console.log(error.code); console.log(error.message); } else { console.log(workspace.eventCallbackUrl); // "http://requestb.in/1kmw9im1" console.log(workspace.timeoutActivitySid); // "WAxxx" } });
delete([resultCallback])
Workspaceを削除します
パラメーター
名前 | Type | 概要 |
---|---|---|
resultCallback | 関数 | (オプション)削除の結果、呼び出される JavaScript 関数。エラーが発生した場合は、この関数に最初に渡される引数がエラーになります。削除が成功した場合、最初の引数は null になります。 |
例
workspace.delete(function(error) { if(error) { console.log(error.code); console.log(error.message); } else { console.log("workspace deleted"); } });
updateToken(workspaceToken)
Workspaceに対するTaskRouterケイパビリティートークンを更新します。
パラメーター
名前 | Type | 概要 |
---|---|---|
workspaceToken | 文字列 | 有効なTaskRouterケイパビリティートークンです。 |
例
var token = refreshJWT(); // your method to retrieve a new capability token workspace.updateToken(token);
activities
オブジェクトを取得して、Activityーの一覧を取得、新しいActivityーを作成、特定のActivityーを取得、更新、または削除します。
取得
パラメーター
名前 | Type | 概要 |
---|---|---|
sid | 文字列 | (オプション)取得する SID。 |
params | JSON | (オプション)クエリーパラメーターの JSON オブジェクト。 |
コールバック | 関数 | Activityの一覧が返されたときに呼び出される関数。一覧の取得中にエラーが発生した場合は、この関数に渡される最初のパラメーターにエラーオブジェクトが渡されます。 取得が成功した場合は、最初のパラメーターはnullになり、2番目のパラメーターにはActivityの一覧が渡されます。 |
workspace.activities.fetch( function(error, activityList) { if(error) { console.log(error.code); console.log(error.message); return; } console.log("Parsing response"); var data = activityList.data; for(i=0; i<data.length; i++) { console.log(data[i].friendlyName); } } );
特定のActivityの取得
workspace.activities.fetch("WAxxx", function(error, activity) { if(error) { console.log(error.code); console.log(error.message); return; } console.log(activity.friendlyName); } );
作成
パラメーター
名前 | Type | 概要 |
---|---|---|
params | JSON | 複数の値を含むオブジェクト。 |
コールバック | 関数 | 作成されたインスタンスが返されたときに呼び出される関数。インスタンスのアップデート中にエラーが発生した場合は、この関数に最初に渡されるパラメーターにエラーオブジェクトが渡されます。作成が成功した場合は、最初のパラメーターは null になり、2 番目のパラメーターには作成されたインスタンスが渡されます。 |
var params = {"FriendlyName":"Activity1", "Available":"true"}; workspace.activities.create( params, function(error, activity) { if(error) { console.log(error.code); console.log(error.message); return; } console.log("FriendlyName: "+activity.friendlyName); } );
アップデート
以下の2つの方法でActivityリソースを更新できます。
- インスタンスリソースでアップデートする
- 特定の SID を渡すリストリソースでアップデートする
インスタンスリソースのパラメーター
名前 | Type | 概要 |
---|---|---|
args... | 文字列または JSON | 単一の API パラメーターおよび値、または複数の値を含む JSON オブジェクト。 |
コールバック | 関数 | アップデートされたインスタンスが返されたときに呼び出される関数。インスタンスのアップデート中にエラーが発生した場合は、この関数に最初に渡されるパラメーターにエラーオブジェクトが渡されます。アップデートが成功した場合は、最初のパラメーターは null になり、2 番目のパラメーターにはアップデートされたインスタンスが渡されます。 |
workspace.activities.fetch( function(error, activityList) { if(error) { console.log(error.code); console.log(error.message); return; } var data = activityList.data; for(i=0; i<data.length; i++) { var activity = data[i]; activity.update("WAxxx", "FriendlyName", "NewFriendlyName", function(error, activity) { if(error) { console.log(error.code); console.log(error.message); return; } console.log("FriendlyName: "+activity.friendlyName); } ); } } );
リストリソースのパラメーター
名前 | Type | 概要 |
---|---|---|
sid | 文字列 | アップデートする SID。 |
args... | 文字列または JSON | 単一の API パラメーターおよび値、または複数の値を含む JSON オブジェクト。 |
コールバック | 関数 | アップデートされたインスタンスが返されたときに呼び出される関数。インスタンスのアップデート中にエラーが発生した場合は、この関数に最初に渡されるパラメーターにエラーオブジェクトが渡されます。アップデートが成功した場合は、最初のパラメーターは null になり、2 番目のパラメーターにはアップデートされたインスタンスが渡されます。 |
workspace.activities.update("WAxxx", "FriendlyName", "NewFriendlyName", function(error, activity) { if(error) { console.log(error.code); console.log(error.message); return; } console.log("FriendlyName: "+activity.friendlyName); } );
削除する
以下の2つの方法でActivityリソースを削除できます。
- インスタンスリソースで削除する
- 特定の SID を渡すリストリソースで削除する
インスタンスリソースのパラメーター
名前 | Type | 概要 |
---|---|---|
resultCallback | 関数 | (オプション)削除の結果、呼び出される JavaScript 関数。エラーが発生した場合は、この関数に最初に渡される引数がエラーになります。削除が成功した場合、最初の引数は null になります。 |
workspace.activities.fetch( function(error, activityList) { if(error) { console.log(error.code); console.log(error.message); return; } var data = activityList.data; for(i=0; i<data.length; i++) { var activity = data[i]; activity.delete(function(error) { if(error) { console.log(error.code); console.log(error.message); return; } console.log("Activity deleted"); }); } } );
リストリソースのパラメーター
名前 | Type | 概要 |
---|---|---|
sid | 文字列 | 削除する SID。 |
resultCallback | 関数 | (オプション)削除の結果、呼び出される JavaScript 関数。エラーが発生した場合は、この関数に最初に渡される引数がエラーになります。削除が成功した場合、最初の引数は null になります。 |
workspace.activities.delete("WAxxx" function(error) { if(error) { console.log(error.code); console.log(error.message); return; } console.log("Activity deleted"); } );
workflows
オブジェクトを取得して、Workflowの一覧を取得、新しいWorkflowを作成、特定のWorkflowを取得、更新、または削除します。
取得
パラメーター
名前 | Type | 概要 |
---|---|---|
sid | 文字列 | (オプション)取得する SID。 |
params | JSON | (オプション)クエリーパラメーターの JSON オブジェクト。 |
コールバック | 関数 | Workflowの一覧が返されたときに呼び出される関数です。 一覧の取得中にエラーが発生した場合は、この関数に渡される最初のパラメーターにエラーオブジェクトが渡されます。 取得が成功した場合は、最初のパラメーターはnullになり、2 番目のパラメーターにはWorkflowの一覧が渡されます。 |
workspace.workflows.fetch( function(error, workflowList) { if(error) { console.log(error.code); console.log(error.message); return; } console.log("Parsing response"); var data = workflowList.data; for(i=0; i<data.length; i++) { console.log(data[i].friendlyName); } } );
特定のWorkflowの取得
workspace.workflows.fetch("WWxxx", function(error, workflow) { if(error) { console.log(error.code); console.log(error.message); return; } console.log(workflow.friendlyName); } );
作成
パラメーター
名前 | Type | 概要 |
---|---|---|
params | JSON | 複数の値を含むオブジェクト。 |
コールバック | 関数 | 作成されたインスタンスが返されたときに呼び出される関数。インスタンスのアップデート中にエラーが発生した場合は、この関数に最初に渡されるパラメーターにエラーオブジェクトが渡されます。作成が成功した場合は、最初のパラメーターは null になり、2 番目のパラメーターには作成されたインスタンスが渡されます。 |
var workflowConfig = {"task_routing":{"default_filter":{"task_queue_sid":"WQxxx"}}}; var params = {"FriendlyName":"Workflow1", "AssignmentCallbackUrl":"http://requestb.in/1kmw9im1", "Configuration":workflowConfig}; workspace.workflows.create( params, function(error, workflow) { if(error) { console.log(error.code); console.log(error.message); return; } console.log("FriendlyName: "+workflow.friendlyName); } );
アップデート
以下の2つの方法でWorkflowリソースを更新できます。
- インスタンスリソースでアップデートする
- 特定の SID を渡すリストリソースでアップデートする
インスタンスリソースのパラメーター
名前 | Type | 概要 |
---|---|---|
args... | 文字列または JSON | 単一の API パラメーターおよび値、または複数の値を含む JSON オブジェクト。 |
コールバック | 関数 | アップデートされたインスタンスが返されたときに呼び出される関数。インスタンスのアップデート中にエラーが発生した場合は、この関数に最初に渡されるパラメーターにエラーオブジェクトが渡されます。アップデートが成功した場合は、最初のパラメーターは null になり、2 番目のパラメーターにはアップデートされたインスタンスが渡されます。 |
workspace.workflows.fetch( function(error, workflowList) { if(error) { console.log(error.code); console.log(error.message); return; } var data = workflowList.data; for(i=0; i<data.length; i++) { var workflow = data[i]; workflow.update("WWxxx", "TaskReservationTimeout", "300", function(error, workflow) { if(error) { console.log(error.code); console.log(error.message); return; } console.log("TaskReservationTimeout: "+workflow.taskReservationTimeout); } ); } } );
リストリソースのパラメーター
名前 | Type | 概要 |
---|---|---|
sid | 文字列 | アップデートする SID。 |
args... | 文字列または JSON | 単一の API パラメーターおよび値、または複数の値を含む JSON オブジェクト。 |
コールバック | 関数 | アップデートされたインスタンスが返されたときに呼び出される関数。インスタンスのアップデート中にエラーが発生した場合は、この関数に最初に渡されるパラメーターにエラーオブジェクトが渡されます。アップデートが成功した場合は、最初のパラメーターは null になり、2 番目のパラメーターにはアップデートされたインスタンスが渡されます。 |
workspace.workflows.update("WWxxx", "TaskReservationTimeout", "300", function(error, workflow) { if(error) { console.log(error.code); console.log(error.message); return; } console.log("TaskReservationTimeout: "+workflow.taskReservationTimeout); } );
削除する
以下の2つの方法でWorkflowリソースを削除できます。
- インスタンスリソースで削除する
- 特定の SID を渡すリストリソースで削除する
インスタンスリソースのパラメーター
名前 | Type | 概要 |
---|---|---|
resultCallback | 関数 | (オプション)削除の結果、呼び出される JavaScript 関数。エラーが発生した場合は、この関数に最初に渡される引数がエラーになります。削除が成功した場合、最初の引数は null になります。 |
workspace.workflows.fetch( function(error, workflowList) { if(error) { console.log(error.code); console.log(error.message); return; } var data = workflowList.data; for(i=0; i<data.length; i++) { var workflow = data[i]; workflow.delete(function(error) { if(error) { console.log(error.code); console.log(error.message); return; } console.log("Workflow deleted"); } ); } } );
リストリソースのパラメーター
名前 | Type | 概要 |
---|---|---|
sid | 文字列 | 削除する SID。 |
resultCallback | 関数 | (オプション)削除の結果、呼び出される JavaScript 関数。エラーが発生した場合は、この関数に最初に渡される引数がエラーになります。削除が成功した場合、最初の引数は null になります。 |
workspace.workflows.delete("WWxxx" function(error) { if(error) { console.log(error.code); console.log(error.message); return; } console.log("Workflow deleted"); } );
統計
オブジェクトを取得して、Workflowの統計を取得します。
取得
パラメーター
名前 | Type | 概要 |
---|---|---|
params | JSON | (オプション)クエリーパラメーターの JSON オブジェクト。 |
コールバック | 関数 | 統計オブジェクトが返されたときに呼び出される関数。リストの取得中にエラーが発生した場合は、この関数に最初に渡されるパラメーターにエラーオブジェクトが渡されます。取得が成功した場合は、最初のパラメーターは null になり、2 番目のパラメーターには統計オブジェクトが渡されます。 |
var queryParams = {"Minutes":"240"}; workflow.statistics.fetch( queryParams, function(error, statistics) { if(error) { console.log(error.code); console.log(error.message); return; } console.log("fetched workflow statistics: "+JSON.stringify(statistics)); } );
累積の統計:
var queryParams = {"Minutes":"240"}; workflow.cumulativeStats.fetch( queryParams, function(error, statistics) { if(error) { console.log(error.code); console.log(error.message); return; } console.log("fetched workflow statistics: "+JSON.stringify(statistics)); } );
リアルタイムの統計:
workflow.realtimeStats.fetch( function(error, statistics) { if(error) { console.log(error.code); console.log(error.message); return; } console.log("fetched workflow statistics: "+JSON.stringify(statistics)); } );
taskqueues
オブジェクトを取得して、TaskQueueの一覧を取得、新しいTaskQueueを作成、特定のTaskQueueを取得、更新または削除します。
取得
パラメーター
名前 | Type | 概要 |
---|---|---|
sid | 文字列 | (オプション)取得する SID。 |
params | JSON | (オプション)クエリーパラメーターの JSON オブジェクト。 |
コールバック | 関数 | TaskQueueの一覧が返されたときに呼び出される関数です。 一覧の取得中にエラーが発生した場合は、この関数に渡される最初のパラメーターにエラーオブジェクトが渡されます。 取得が成功した場合は、最初のパラメーターはnullになり、2 番目のパラメーターにはTaskQueueの一覧が渡されます。 |
workspace.taskqueues.fetch( function(error, taskQueueList) { if(error) { console.log(error.code); console.log(error.message); return; } console.log("Parsing response"); var data = taskQueueList.data; for(i=0; i<data.length; i++) { console.log(data[i].friendlyName); } } );
特定のTaskQueueの取得
workspace.taskqueues.fetch("WQxxx", function(error, taskQueue) { if(error) { console.log(error.code); console.log(error.message); return; } console.log(taskQueue.friendlyName); } );
作成
パラメーター
名前 | Type | 概要 |
---|---|---|
params | JSON | 複数の値を含むオブジェクト。 |
コールバック | 関数 | 作成されたインスタンスが返されたときに呼び出される関数。インスタンスのアップデート中にエラーが発生した場合は、この関数に最初に渡されるパラメーターにエラーオブジェクトが渡されます。作成が成功した場合は、最初のパラメーターは null になり、2 番目のパラメーターには作成されたインスタンスが渡されます。 |
var params = {"FriendlyName":"TaskQueue1", "ReservationActivitySid":"WAxxx", "AssignmentActivitySid":"WAxxx", "TargetWorkers":"1==1"}; workspace.taskqueues.create( params, function(error, taskQueue) { if(error) { console.log(error.code); console.log(error.message); return; } console.log("FriendlyName: "+taskQueue.friendlyName); } );
アップデート
以下の2つの方法でTaskQueueリソースを更新できます:
- インスタンスリソースでアップデートする
- 特定の SID を渡すリストリソースでアップデートする
インスタンスリソースのパラメーター
名前 | Type | 概要 |
---|---|---|
args... | 文字列または JSON | 単一の API パラメーターおよび値、または複数の値を含む JSON オブジェクト。 |
コールバック | 関数 | アップデートされたインスタンスが返されたときに呼び出される関数。インスタンスのアップデート中にエラーが発生した場合は、この関数に最初に渡されるパラメーターにエラーオブジェクトが渡されます。アップデートが成功した場合は、最初のパラメーターは null になり、2 番目のパラメーターにはアップデートされたインスタンスが渡されます。 |
workspace.taskqueues.fetch( function(error, taskQueueList) { if(error) { console.log(error.code); console.log(error.message); return; } var data = taskQueueList.data; for(i=0; i<data.length; i++) { var taskqueue = data[i]; taskqueue.update("WWxxx", "MaxReservedWorkers", "20", function(error, taskqueue) { if(error) { console.log(error.code); console.log(error.message); return; } console.log("MaxReservedWorkers: "+taskqueue.maxReservedWorkers); } ); } } );
リストリソースのパラメーター
名前 | Type | 概要 |
---|---|---|
sid | 文字列 | アップデートする SID。 |
args... | 文字列または JSON | 単一の API パラメーターおよび値、または複数の値を含む JSON オブジェクト。 |
コールバック | 関数 | アップデートされたインスタンスが返されたときに呼び出される関数。インスタンスのアップデート中にエラーが発生した場合は、この関数に最初に渡されるパラメーターにエラーオブジェクトが渡されます。アップデートが成功した場合は、最初のパラメーターは null になり、2 番目のパラメーターにはアップデートされたインスタンスが渡されます。 |
workspace.taskqueues.update("WQxxx", "MaxReservedWorkers", "20", function(error, taskqueue) { if(error) { console.log(error.code); console.log(error.message); return; } console.log("MaxReservedWorkers: "+taskqueue.maxReservedWorkers); } );
削除する
以下の2つの方法でTaskQueueリソースを削除できます:
- インスタンスリソースで削除する
- 特定の SID を渡すリストリソースで削除する
インスタンスリソースのパラメーター
名前 | Type | 概要 |
---|---|---|
resultCallback | 関数 | (オプション)削除の結果、呼び出される JavaScript 関数。エラーが発生した場合は、この関数に最初に渡される引数がエラーになります。削除が成功した場合、最初の引数は null になります。 |
workspace.taskqueues.fetch( function(error, taskQueueList) { if(error) { console.log(error.code); console.log(error.message); return; } var data = taskQueueList.data; for(i=0; i<data.length; i++) { var taskqueue = data[i]; taskqueue.delete(function(error) { if(error) { console.log(error.code); console.log(error.message); return; } console.log("TaskQueue deleted"); } ); } } );
リストリソースのパラメーター
名前 | Type | 概要 |
---|---|---|
sid | 文字列 | 削除する SID。 |
resultCallback | 関数 | (オプション)削除の結果、呼び出される JavaScript 関数。エラーが発生した場合は、この関数に最初に渡される引数がエラーになります。削除が成功した場合、最初の引数は null になります。 |
workspace.taskqueues.delete("WQxxx" function(error) { if(error) { console.log(error.code); console.log(error.message); return; } console.log("TaskQueue deleted"); } );
統計
オブジェクトを取得して、TaskQueueの統計を取得します。
取得
パラメーター
名前 | Type | 概要 |
---|---|---|
params | JSON | (オプション)クエリーパラメーターの JSON オブジェクト。 |
コールバック | 関数 | 統計オブジェクトが返されたときに呼び出される関数。リストの取得中にエラーが発生した場合は、この関数に最初に渡されるパラメーターにエラーオブジェクトが渡されます。取得が成功した場合は、最初のパラメーターは null になり、2 番目のパラメーターには統計オブジェクトが渡されます。 |
TaskQueueの一覧:
var queryParams = {"Minutes":"240"}; workspace.taskqueues.statistics.fetch( queryParams, function(error, statistics) { if(error) { console.log(error.code); console.log(error.message); return; } console.log("fetched taskqueues statistics: "+JSON.stringify(statistics)); } );
単一のTaskQueue:
var queryParams = {"Minutes":"240"}; taskqueue.statistics.fetch( queryParams, function(error, statistics) { if(error) { console.log(error.code); console.log(error.message); return; } console.log("fetched taskqueue statistics: "+JSON.stringify(statistics)); } );
メモ: より速いレスポンスタイムとより小さいペイロードのため、累積またはリアルタイムの統計のどちらかのみが問題になる場合は、statistics
を cumulativestats
または cumulativestats
にそれぞれ置き換えてください。
累積の統計:
taskqueue.cumulativeStats.fetch( function(error, statistics) { if(error) { console.log(error.code); console.log(error.message); return; } console.log("fetched taskqueue statistics: "+JSON.stringify(statistics)); console.log("avg task acceptance time: "+statistics.avgTaskAcceptanceTime; } );
リアルタイムの統計:
var queryParams = {"Minutes":"240"}; taskqueue.realtimeStats.fetch( queryParams, function(error, statistics) { if(error) { console.log(error.code); console.log(error.message); return; } console.log("fetched taskqueue statistics: "+JSON.stringify(statistics)); console.log("total available workers: "+statistics.totalAvailableWorkers; } );
workers
オブジェクトを取得して、Workerの一覧を取得、新しいWorkerを作成、特定のWorkerを取得、更新、または削除します。
取得
パラメーター
名前 | Type | 概要 |
---|---|---|
sid | 文字列 | (オプション)取得する SID。 |
params | JSON | (オプション)クエリーパラメーターの JSON オブジェクト。 |
コールバック | 関数 | Workerの一覧が返されたときに呼び出される関数。 一覧の取得中にエラーが発生した場合は、この関数に渡される最初のパラメーターにエラーオブジェクトが渡されます。 取得が成功した場合は、最初のパラメーターはnullになり、2 番目のパラメーターにはWorker一覧が渡されます。 |
workspace.workers.fetch( function(error, workerList) { if(error) { console.log(error.code); console.log(error.message); return; } console.log("Parsing response"); var data = workerList.data; for(i=0; i<data.length; i++) { console.log(data[i].friendlyName); } } );
特定のWorkerの取得
workspace.workers.fetch("WKxxx", function(error, worker) { if(error) { console.log(error.code); console.log(error.message); return; } console.log(worker.friendlyName); } );
作成
パラメーター
名前 | Type | 概要 |
---|---|---|
params | JSON | 複数の値を含むオブジェクト。 |
コールバック | 関数 | 作成されたインスタンスが返されたときに呼び出される関数。インスタンスのアップデート中にエラーが発生した場合は、この関数に最初に渡されるパラメーターにエラーオブジェクトが渡されます。作成が成功した場合は、最初のパラメーターは null になり、2 番目のパラメーターには作成されたインスタンスが渡されます。 |
var params = {"FriendlyName":"Worker1"}; workspace.workers.create( params, function(error, worker) { if(error) { console.log(error.code); console.log(error.message); return; } console.log("FriendlyName: "+worker.friendlyName); } );
アップデート
以下の2つの方法でWorkerリソースを更新できます。
- インスタンスリソースでアップデートする
- 特定の SID を渡すリストリソースでアップデートする
インスタンスリソースのパラメーター
名前 | Type | 概要 |
---|---|---|
args... | 文字列または JSON | 単一の API パラメーターおよび値、または複数の値を含む JSON オブジェクト。 |
コールバック | 関数 | アップデートされたインスタンスが返されたときに呼び出される関数。インスタンスのアップデート中にエラーが発生した場合は、この関数に最初に渡されるパラメーターにエラーオブジェクトが渡されます。アップデートが成功した場合は、最初のパラメーターは null になり、2 番目のパラメーターにはアップデートされたインスタンスが渡されます。 |
workspace.workers.fetch( function(error, workerList) { if(error) { console.log(error.code); console.log(error.message); return; } var data = workerList.data; for(i=0; i<data.length; i++) { var worker = data[i]; worker.update("WKxxx", "ActivitySid", "WAxxx", function(error, worker) { if(error) { console.log(error.code); console.log(error.message); return; } console.log("FriendlyName: "+worker.friendlyName); } ); } } );
リストリソースのパラメーター
名前 | Type | 概要 |
---|---|---|
sid | 文字列 | アップデートする SID。 |
args... | 文字列または JSON | 単一の API パラメーターおよび値、または複数の値を含む JSON オブジェクト。 |
コールバック | 関数 | アップデートされたインスタンスが返されたときに呼び出される関数。インスタンスのアップデート中にエラーが発生した場合は、この関数に最初に渡されるパラメーターにエラーオブジェクトが渡されます。アップデートが成功した場合は、最初のパラメーターは null になり、2 番目のパラメーターにはアップデートされたインスタンスが渡されます。 |
workspace.workers.update("WKxxx", "ActivitySid", "WAxxx", function(error, worker) { if(error) { console.log(error.code); console.log(error.message); return; } console.log("FriendlyName: "+worker.friendlyName); } );
削除する
以下の2つの方法でWorkerリソースを削除できます。
- インスタンスリソースで削除する
- 特定の SID を渡すリストリソースで削除する
インスタンスリソースのパラメーター
名前 | Type | 概要 |
---|---|---|
resultCallback | 関数 | (オプション)削除の結果、呼び出される JavaScript 関数。エラーが発生した場合は、この関数に最初に渡される引数がエラーになります。削除が成功した場合、最初の引数は null になります。 |
workspace.workers.fetch( function(error, workerList) { if(error) { console.log(error.code); console.log(error.message); return; } var data = workerList.data; for(i=0; i<data.length; i++) { var worker = data[i]; worker.delete(function(error) { if(error) { console.log(error.code); console.log(error.message); return; } console.log("Worker deleted"); } ); } } );
リストリソースのパラメーター
名前 | Type | 概要 |
---|---|---|
sid | 文字列 | 削除する SID。 |
resultCallback | 関数 | (オプション)削除の結果、呼び出される JavaScript 関数。エラーが発生した場合は、この関数に最初に渡される引数がエラーになります。削除が成功した場合、最初の引数は null になります。 |
workspace.workers.delete("WKxxx" function(error) { if(error) { console.log(error.code); console.log(error.message); return; } console.log("Worker deleted"); } );
統計
オブジェクトを取得して、Workerの統計を取得します。
取得
パラメーター
名前 | Type | 概要 |
---|---|---|
params | JSON | (オプション)クエリーパラメーターの JSON オブジェクト。 |
コールバック | 関数 | 統計オブジェクトが返されたときに呼び出される関数。リストの取得中にエラーが発生した場合は、この関数に最初に渡されるパラメーターにエラーオブジェクトが渡されます。取得が成功した場合は、最初のパラメーターは null になり、2 番目のパラメーターには統計オブジェクトが渡されます。 |
Workerの一覧:
var queryParams = {"Minutes":"240"}; workspace.workers.statistics.fetch( queryParams, function(error, statistics) { if(error) { console.log(error.code); console.log(error.message); return; } console.log("fetched workers statistics: "+JSON.stringify(statistics)); } );
Workerの累積統計の一覧
var queryParams = {"Minutes":"240"}; workspace.workers.cumulativeStats.fetch( queryParams, function(error, statistics) { if(error) { console.log(error.code); console.log(error.message); return; } console.log("fetched workers statistics: "+JSON.stringify(statistics)); } );
Workerのリアルテイム統計の一覧
workspace.workers.realtimeStats.fetch( function(error, statistics) { if(error) { console.log(error.code); console.log(error.message); return; } console.log("fetched workers statistics: "+JSON.stringify(statistics)); } );
単一のWorker:
var queryParams = {"Minutes":"240"}; worker.statistics.fetch( queryParams, function(error, statistics) { if(error) { console.log(error.code); console.log(error.message); return; } console.log("fetched worker statistics: "+JSON.stringify(statistics)); } );
tasks
オブジェクトを取得して、Taskの一覧を取得、新しいTaskを作成、特定のTaskを取得、更新、または削除します。
取得
パラメーター
名前 | Type | 概要 |
---|---|---|
sid | 文字列 | (オプション)取得する SID。 |
params | JSON | (オプション)クエリーパラメーターの JSON オブジェクト。 |
コールバック | 関数 | Taskの一覧が返されたときに呼び出される関数です。 リストの取得中にエラーが発生した場合は、この関数に最初に渡されるパラメーターにエラーオブジェクトが渡されます。 取得が成功した場合は、最初のパラメーターはnullになり、2 番目のパラメーターにはTaskの一覧が渡されます。 |
workspace.tasks.fetch( function(error, taskList) { if(error) { console.log(error.code); console.log(error.message); return; } console.log("Parsing response"); var data = taskList.data; for(i=0; i<data.length; i++) { console.log(JSON.stringify(data[i].attributes)); } } );
特定のTaskの取得
workspace.tasks.fetch("WTxxx", function(error, task) { if(error) { console.log(error.code); console.log(error.message); return; } console.log(JSON.stringify(task.attributes)); } );
作成
パラメーター
名前 | Type | 概要 |
---|---|---|
params | JSON | 複数の値を含むオブジェクト。 |
コールバック | 関数 | 作成されたインスタンスが返されたときに呼び出される関数。インスタンスのアップデート中にエラーが発生した場合は、この関数に最初に渡されるパラメーターにエラーオブジェクトが渡されます。作成が成功した場合は、最初のパラメーターは null になり、2 番目のパラメーターには作成されたインスタンスが渡されます。 |
var attributes = "{\"Ticket\":\"Gold\"}"; var params = {"WorkflowSid":"WWxxx", "Attributes":attributes}; workspace.tasks.create( params, function(error, task) { if(error) { console.log(error.code); console.log(error.message); return; } console.log("TaskSid: "+task.sid); } );
アップデート
以下の2つの方法でTaskリソースを更新できます。
- インスタンスリソースでアップデートする
- 特定の SID を渡すリストリソースでアップデートする
インスタンスリソースのパラメーター
名前 | Type | 概要 |
---|---|---|
args... | 文字列または JSON | 単一の API パラメーターおよび値、または複数の値を含む JSON オブジェクト。 |
コールバック | 関数 | アップデートされたインスタンスが返されたときに呼び出される関数。インスタンスのアップデート中にエラーが発生した場合は、この関数に最初に渡されるパラメーターにエラーオブジェクトが渡されます。アップデートが成功した場合は、最初のパラメーターは null になり、2 番目のパラメーターにはアップデートされたインスタンスが渡されます。 |
workspace.tasks.fetch( function(error, taskList) { if(error) { console.log(error.code); console.log(error.message); return; } var data = taskList.data; var cancelAttrs = {"AssignmentStatus":"canceled", "Reason":"waiting"} for(i=0; i<data.length; i++) { var task = data[i]; task.update("WTxxx", cancelAttrs, function(error, task) { if(error) { console.log(error.code); console.log(error.message); return; } console.log("Attributes: "+JSON.stringify(task.attributes)); } ); } } );
リストリソースのパラメーター
名前 | Type | 概要 |
---|---|---|
sid | 文字列 | アップデートする SID。 |
args... | 文字列または JSON | 単一の API パラメーターおよび値、または複数の値を含む JSON オブジェクト。 |
コールバック | 関数 | アップデートされたインスタンスが返されたときに呼び出される関数。インスタンスのアップデート中にエラーが発生した場合は、この関数に最初に渡されるパラメーターにエラーオブジェクトが渡されます。アップデートが成功した場合は、最初のパラメーターは null になり、2 番目のパラメーターにはアップデートされたインスタンスが渡されます。 |
var cancelAttrs = {"AssignmentStatus":"canceled", "Reason":"waiting"} workspace.tasks.update("WTxxx", cancelAttrs, function(error, task) { if(error) { console.log(error.code); console.log(error.message); return; } console.log("Attributes: "+JSON.stringify(task.attributes)); } );
削除する
以下の2つの方法でTaskリソースを削除できます。
- インスタンスリソースで削除する
- 特定の SID を渡すリストリソースで削除する
インスタンスリソースのパラメーター
名前 | Type | 概要 |
---|---|---|
resultCallback | 関数 | (オプション)削除の結果、呼び出される JavaScript 関数。エラーが発生した場合は、この関数に最初に渡される引数がエラーになります。削除が成功した場合、最初の引数は null になります。 |
workspace.tasks.fetch( function(error, taskList) { if(error) { console.log(error.code); console.log(error.message); return; } var data = taskList.data; for(i=0; i<data.length; i++) { var task = data[i]; task.delete(function(error) { if(error) { console.log(error.code); console.log(error.message); return; } console.log("Task deleted"); } ); } } );
リストリソースのパラメーター
名前 | Type | 概要 |
---|---|---|
sid | 文字列 | 削除する SID。 |
resultCallback | 関数 | (オプション)削除の結果、呼び出される JavaScript 関数。エラーが発生した場合は、この関数に最初に渡される引数がエラーになります。削除が成功した場合、最初の引数は null になります。 |
workspace.tasks.delete("WTxxx" function(error) { if(error) { console.log(error.code); console.log(error.message); return; } console.log("task deleted"); } );
統計
オブジェクトを取得して、Workspaceの統計を取得します。
取得
パラメーター
名前 | Type | 概要 |
---|---|---|
params | JSON | (オプション)クエリーパラメーターの JSON オブジェクト。 |
コールバック | 関数 | 統計オブジェクトが返されたときに呼び出される関数。リストの取得中にエラーが発生した場合は、この関数に最初に渡されるパラメーターにエラーオブジェクトが渡されます。取得が成功した場合は、最初のパラメーターは null になり、2 番目のパラメーターには統計オブジェクトが渡されます。 |
var queryParams = {"Minutes":"240"}; workspace.statistics.fetch( queryParams, function(error, statistics) { if(error) { console.log(error.code); console.log(error.message); return; } console.log("fetched workspace statistics: "+JSON.stringify(statistics)); } );
累積の統計:
var queryParams = {"Minutes":"240"}; workspace.cumulativeStats.fetch( queryParams, function(error, statistics) { if(error) { console.log(error.code); console.log(error.message); return; } console.log("fetched workspace statistics: "+JSON.stringify(statistics)); } );
リアルタイムの統計:
var queryParams = {}; workspace.realtimeStats.fetch( queryParams, function(error, statistics) { if(error) { console.log(error.code); console.log(error.message); return; } console.log("fetched workspace statistics: "+JSON.stringify(statistics)); } );
on(event, callback)
リスナーを指定されたEventに接続します。サポートされているすべてのEventのリストについては、Eventをご覧ください。
パラメーター
名前 | Type | 概要 |
---|---|---|
イベント | 文字列 | Event名です。サポートされているすべてのEventのリストについては、Eventをご覧ください。 |
コールバック | 関数 | 指定されたEventが発生したときに呼び出される関数です。 |
例
workspace.on("ready", function(workspace) { console.log(workspace.friendlyName) // MyWorkspace });
Events
TaskRouterのJSライブラリーは、現在、登録されたWorkspaceブジェクトに以下のEventを発行します。
ready
WorkspaceがTaskRouterとの接続を確立し、初期化を完了しました。
パラメーター
名前 | Type | 概要 |
---|---|---|
ワークスペース | Workspace | 作成したWorkspaceに対するWorkspaceオブジェクトです。 |
例
workspace.on("ready", function(workspace) { console.log(workspace.friendlyName) // MyWorkspace });
connected
WorkspaceはTaskRouterへの接続を確立しました。
例
workspace.on("connected", function() { console.log("Websocket has connected"); });
disconnected
WorkspaceはTaskRouterからの接続を切断しました。
例
workspace.on("disconnected", function() { console.log("Websocket has disconnected"); });
token.expired
このWorkspaceを作成するために使用したTaskRouterケイパビリティートークンの有効期限が切れた場合に発行されます。
例
workspace.on("token.expired", function() { console.log("updating token"); var token = refreshJWT(); // your method to retrieve a new capability token workspace.updateToken(token); });
ヘルプが必要ですか?
誰しもが一度は考える「コーディングって難しい」。そんな時は、お問い合わせフォームから質問してください。 または、Stack Overflow でTwilioタグのついた情報から欲しいものを探してみましょう。