Twilio Notifyの使いみち

Twilio Notifyは適切なタイミングで適切な通知を行うAPIとの触れ込みですが、今ひとつ具体的な使用イメージがついていませんでした。

2018年3月にTwilio NotifyがGAになり使ってみて、少し使い方がわかってきました。

(自分はSMSとFacebookMessengerで試してみました。)

この記事ではドキュメントから読み取って実際に検証してない事項もありますので、ご了承ください。

 

大きく次の2つの使い方があるようです。

1. Twilio側に予め通知先情報を登録し、通知するときにその中から選択して通知する。

2. 通知するときに通知先情報を与える方法(一斉通知)

いずれの場合も基本的にはチャネル(SMS,FacebookMessenger,...)の種類を意識せず通知することができます。

 

以下、この2つの使い方について概要を説明します。

通知に使用するチャネルはインストール済みであることを前提とします。

 

Ⅰ Twilio側に予め通知先情報を登録しておく方法

次の表のような通知先情報をTwilio側に登録しておき、その中からユーザとチャネルを指定して通知する例を考えてみます。

ユーザID SMS電話番号 FBメッセンジャーID 優先チャネル
001 +818011111111 0123456789012345 sms
002 +818022222222 9876543210987654 facebook-messenger
: : : :

 手順

    1. Notify Service作成
      Twilioポータルで、プロパティにSMSや事前に設定してあるチャネル(FacebookMessengerPage等)を選択し、Serviceに紐づけておきます。

    2. Binding登録
      REST API(Binding)を使い、各ユーザのチャネル毎に上記のServiceに登録していきます(例では4回APIを呼び出すことになります)。
      優先チャネルのTagには「preferred_device」と設定しておきます(Tagの使い方の一例)。
      項目
      Identity 001
      BindingType sms
      Adress +818011111111
      Tag preferred_device
      項目
      Identity 001
      BindingType facebook-messenger
      Adress 0123456789012345
      項目
      Identity 002
      BindingType sms
      Adress +81802222222
      項目
      Identity 002
      BindingType facebook-messenger
      Adress 9876543210987654
      Tag preferred_device

 

  1. 通知
    REST API(Notify)を使い、通知します。

    1. 指定ユーザの全チャネルに通知する場合
      以下のようにIdentityだけを指定すると、該当ユーザの全チャネル(例ではSMSとFacebookMessenger)に対してメッセージが通知されます。
      送信元は、それぞれServiceに紐づけてある電話番号、FacebookPageとなります。
      項目
      Identity 001
      Body メッセージ内容
      MediaUrl {画像のURL}


    2. 指定ユーザの優先チャネルに通知する場合
      以下のようにIdentityとTagを指定すると、両方が一致するユーザのチャネル(例ではユーザID 001のSMS)にメッセージが通知されます。
      項目
      Identity 001
      Tag preferred_device
      Body メッセージ内容
      MediaUrl {画像のURL}

      同様にIdentity=002, Tag=preferred_deviceを指定すると、ユーザID 002のFacebookMessengerに通知されます。

      Tagは最大20指定できます。活用することによりいろんな応用ができるでしょう。

    3. 指定ユーザの指定チャネルに通知する
      暗黙的に、TagにBindingTypeが登録されていると見なされます。
      ユーザID 002のSMSに通知したい場合は、Tagにsmsを指定します。
      項目
      Identity 002
      Tag sms
      Body メッセージ内容
      MediaUrl {画像のURL}

Binding登録したSMS電話番号が解約されて通知できなかった場合など、Bindingリストから自動的に抹消されるそうです。

Ⅱ 通知するときに通知先情報を与える方法

一斉通知するときに便利な方法です。

通知先のチャネルを混在させることもできます。

 手順

  1. Ⅰと同様にServiceを作成します。
    Bindingの登録は不要です(Binding登録されているServiceを流用することもできます)。

  2. 通知
    REST API(Notify)を使い、通知します。
    ToBindingにはチャネルと宛先をJSON形式で指定します。最大10,000件(全サイズが1MBを超えない範囲)指定できます。
    項目
    ToBinding {"binding_type":"sms","address":"+818011111111"}
    ToBinding {"binding_type":"facebook-messenger","address":"9876543210987654"}
    Body メッセージ内容
    ToBindingを指定するときは、MediaUrlパラメータは使えないようです(チャネル固有のパラメータを使って画像等を添付することは可能です)。

 

ToBindingを使った一斉送信なんかは、営業目的ですぐ使えそうですね。