メニュー

Rate this page:

Thanks for rating this page!

We are always striving to improve our documentation quality, and your feedback is valuable to us. How could this documentation serve you better?

タスクの作成と予約の受諾: 割り当てコールバックURLをセットアップする

[正常な] TaskRouterタスクの基本的なライフサイクルは以下のとおりです。

タスクを作成 → 適格なワーカーが対応可能になる → ワーカーを予約 → 予約を受諾 → タスクをワーカーに割り当てる 。

このチュートリアル部分では、タスクを作成し、それぞれのステージでそのタスクを観察します。まずは、Tasks REST API を使ってタスクを作成します。最初は Reservations REST API を使ってタスクを受諾し、その後タスクをもう 1 つ作成し、割り当てコールバック命令を使ってそのタスクを受諾します。

Reservations REST API と割り当てコールバック命令はどちらも予約を受諾するための有効な方法です。予約を受諾または却下する前にサーバーが行わなければならないバックグラウンド作業の量に基づき、いずれかを選択します。たとえば、必要となる時間により、受諾する前に担当者がタスクを検証できるようなユーザーインターフェイスを構築する場合は、Reservations REST API を使って、予約を非同期に受諾する必要があります。

割り当てコールバック URL をセットアップする

予約を受諾するのにREST APIを使うのか割り当てコールバック命令を使うのかに関係なく、TaskRouterがアクセス可能な割り当てコールバック URL は必ず必要です。 これは、タスクを行うようにワーカーが予約された場合にTaskRouterが通知するURLです。タスクを作成する前に、割り当てコールバックURLを開いておきましょう。

とうとう(ただし必要最低限!)コードを記述する番です。

HTTPリクエストに応答するJava Servletを作成し、割り当てコールバックを受信したときにTwilioが行うべきことを指定できます。

まず、受信リクエストに応答するJava servletクラスをセットアップします。

TwilioTaskRouterServlet.java

import java.io.IOException;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class TwilioTaskRouterServlet extends HttpServlet {
  // service() responds to both GET and POST requests.
  // You can also use doGet() or doPost()
  @Override
  public void service(final HttpServletRequest request, final HttpServletResponse response)
      throws IOException {
    if (request.getPathInfo() == null || request.getPathInfo().isEmpty()) {
      return;
    }

    if (request.getPathInfo().equals("/assignment_callback")) {
      response.setContentType("application/json");
      response.getWriter().print("{}");
    }
  }
}

taskrouter/WEB-INF/web.xml

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    version="2.4">

    <display-name>Twilio TaskRouter App</display-name>

    <servlet>
        <servlet-name>TwilioTaskRouterServlet</servlet-name>
        <servlet-class>com.twilio.TwilioTaskRouterServlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>TwilioTaskRouterServlet</servlet-name>
        <url-pattern>/taskrouter/*</url-pattern>
    </servlet-mapping>

</web-app>

これにより、空の JSON ドキュメントが 200(OK)レスポンスコードでTaskRouterに返されます。 これによって、割り当てコールバックが正常に受信および解析されたものの、予約に対し今すぐは何のアクションも行わないことがTaskRouterに伝えられます。 代わりに、準備が整った時点でREST APIを使って、予約を受諾または却下する旨が示唆されます。

Javaサーバーが実行中であることを確認してください (Tomcat、Jetty、JBossなど) Servletはこちらでご利用いただけます: http://yourwebserver.com/<path-to-servlet>/taskrouter

Twilioから開発者のサーバーにアクセスできるようにする

本チュートリアルのこの時点で、Twilioがあなたの開発サーバーとのやりとりのためにサーバーを公開インターネット上にさらす方法を探す必要があります。 こちらに便利なツールがいくつかあります。

このチュートリアルでは、ngrokを使用します。ngrok を $PATH にインストールしたら、ターミナルで以下のコマンドを実行して、外界からのリクエストの待機を開始します。

ngrok 8080

これで、ローカルのJavaサーバーはngrok URL経由で、(Twilioのサーバーを含む)誰からでもアクセスできます。

これらを有効にした状態で、新たに実装した割り当てコールバック URL をポイントするように、「カスタマーケアリクエストの着信」ワークフローを編集します。

http://yourngrokserver.com/<path-to-servlet>/taskrouter/assignment_callback

すばらしい。タスクを作成し、予約を受諾する準備が整いました。

次:REST API を使ってタスクを作成する »

Rate this page:

ヘルプが必要ですか?

We all do sometimes; code is hard. Get help now from our support team, or lean on the wisdom of the crowd browsing the Twilio tag on Stack Overflow.