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 |
: | : | : | : |
手順
- Notify Service作成
Twilioポータルで、プロパティにSMSや事前に設定してあるチャネル(FacebookMessengerPage等)を選択し、Serviceに紐づけておきます。 - 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
- 通知
REST API(Notify)を使い、通知します。
- 指定ユーザの全チャネルに通知する場合
以下のようにIdentityだけを指定すると、該当ユーザの全チャネル(例ではSMSとFacebookMessenger)に対してメッセージが通知されます。
送信元は、それぞれServiceに紐づけてある電話番号、FacebookPageとなります。
項目 値 Identity 001 Body メッセージ内容 MediaUrl {画像のURL} - 指定ユーザの優先チャネルに通知する場合
以下のようにIdentityとTagを指定すると、両方が一致するユーザのチャネル(例ではユーザID 001のSMS)にメッセージが通知されます。
項目 値 Identity 001 Tag preferred_device Body メッセージ内容 MediaUrl {画像のURL}
同様にIdentity=002, Tag=preferred_deviceを指定すると、ユーザID 002のFacebookMessengerに通知されます。
Tagは最大20指定できます。活用することによりいろんな応用ができるでしょう。 - 指定ユーザの指定チャネルに通知する
暗黙的に、TagにBindingTypeが登録されていると見なされます。
ユーザID 002のSMSに通知したい場合は、Tagにsmsを指定します。項目 値 Identity 002 Tag sms Body メッセージ内容 MediaUrl {画像のURL}
- 指定ユーザの全チャネルに通知する場合
Binding登録したSMS電話番号が解約されて通知できなかった場合など、Bindingリストから自動的に抹消されるそうです。
Ⅱ 通知するときに通知先情報を与える方法
一斉通知するときに便利な方法です。
通知先のチャネルを混在させることもできます。
手順
- Ⅰと同様にServiceを作成します。
Bindingの登録は不要です(Binding登録されているServiceを流用することもできます)。 - 通知
REST API(Notify)を使い、通知します。
ToBindingにはチャネルと宛先をJSON形式で指定します。最大10,000件(全サイズが1MBを超えない範囲)指定できます。
項目 値 ToBinding {"binding_type":"sms","address":"+818011111111"} ToBinding {"binding_type":"facebook-messenger","address":"9876543210987654"} Body メッセージ内容
ToBindingを使った一斉送信なんかは、営業目的ですぐ使えそうですね。