SMS
できること、正確に
認証情報は暗号化
自社の Twilio の SID とトークンは暗号化して保存され、二度と表示されません。送信者 ID、Messaging Service、各種登録は、設定したとおりのまま残ります。
本当の意味で双方向
受信した SMS は暗号的に署名された Webhook を通って届き、振り分け済みの会話になります。ステータスのコールバックが、各メッセージを送信済み→配信済みという前進のみの段階へ進めます。確認済みの配信が後戻りすることはありません。
セグメント数をスレッドに
送信ごとに、実際に出た SMS セグメント数を記録します。Twilio の請求は、会話の中から説明できます。
本人確認を内蔵
ワンタイムコードによる電話番号の確認は Twilio Verify に乗ります。コードの生成も配信も照合も Twilio が行い、当社は何も保存しません。
技術的な仕組み
セグメントの計算はお金の話。だからサーバー側に置く
コストの正本は1つ
セグメントの計算はサーバー上の、ちょうど1か所で動きます。クライアント側に複製があれば、実際に課金される値からずれていきます。しかもずれる方向は、いつも安心させるほうです。
請求を3倍にする ş
GSM アルファベットの外にある文字が1つ入るだけで、メッセージ全体が70文字のセグメントに落ちます。作成画面は送信前にそれを把握しています。GSM の161文字は、160+1ではなく153のセグメント2つとして課金されます。
エスケープ文字まで数える
^、{、}、€ のような文字は GSM エンコーディングでは1文字あたり2単位、絵文字は UCS-2 で2単位を消費します。カウンターは、キャリアと同じやり方でそれを数えます。
Messaging Service を優先
Twilio の Messaging Service を設定している場合、送信は裸の番号よりそちらを優先します。プール、スティッキー送信者、法令対応の設定を迂回せず、そのまま引き継ぎます。
Verify は管理されたやり方で
電話番号の確認には Twilio Verify を使います。コードの生成、配信、照合はすべて Twilio が行い、顧客の言語にローカライズされます。保存すべき OTP のシークレットも、漏れうるコードもありません。
失敗は名前つきで返る
拒否された送信は、Twilio の実際の理由とともに返ってきます。認証、地域の許可設定、未検証の試用番号。それを運用担当者にそのまま見せます。汎用のエラーに洗い流すことはしません。
セットアップ
接続のしくみ
認証情報の貼り付け
SID とトークンを登録します。保存時に暗号化され、設定時に検証されます。
送信者の選択
自社の番号と送信者 ID がチャネルとして並び、部署ごとに振り分けられます。
ブレーキを掛けたまま送る
キャンペーンは送信の瞬間に、受信者ごとの同意を確認します。火曜にオプトアウトした人は水曜にスキップされ、理由とともに記録されます。
組み合わせると強い
組み合わせられる機能
セキュリティと保証
退屈な保証
受信は暗号的に自社のもの
受信する Webhook はすべて、Twilio の署名方式で検証します。URL 全体と並べ替えたペイロードに対する HMAC を、自社のアカウントトークンを鍵にして計算します。署名のない「受信 SMS」は、誰かの受信トレイへ開いた扉です。この扉は閉じたままにしています。
シークレットはシークレットとして扱う
SID とトークンは保存時に暗号化され、送信するのは認証ヘッダーの中だけです。ログに残すことも、エラーメッセージに出力することもありません。
同意は2回
キャンペーンの送信では、オーディエンス作成時と、送信時にメッセージごとの2回、同意を確認します。火曜にオプトアウトした人は水曜にスキップされ、そのスキップは理由つきで記録されます。
受領記録にも署名を
配信ステータスのコールバックも、受信メッセージとまったく同じように、自社の鍵で署名を検証します。署名のないステータス用エンドポイントがあれば、誰でも自社のメッセージを「配信済み」にできてしまいます。偽のメッセージより静かで、しかも悪質です。誰も探しに行かないからです。
包み隠さない但し書き
線引きを明示
MMS は非対応
画像メッセージは実装していません。添付は黙って捨てられるのではなく、理由を名指しして失敗します。ただし失敗はします。そう書いておきます。
英数字の送信者名は一方向
ブランド名の送信者では返信を受け取れません。これは SMS の物理的な性質で、作成画面もそれを知っています。