10.5K Views
April 12, 22
スライド概要
Twilio Programmable Messaging製品を用いてアプリケーションからSMSを送信するための方法について解説しています。
製品についてはこちらをご覧ください。
https://www.twilio.com/ja/sms
Developer Advocate for Auth0 by Okta
Twilio Programmable Messagingを用 いたSMS送信入門
自己紹介 池原 大然 デベロッパーエバンジェリスト Email: [email protected] > npx neri78 @Neri78 © 2020 2022 TWILIO INC. ALL RIGHTS RESERVED.
Twilioが提供するコミュニケーションサービス ソリューションプラットフォーム 管理 & ガバナンス コンタクトセンター Twilio Flex Eメール キャンペーン Marketing Campaigns 開発者向け ツール フィールドサービス自動化 Frontline ガバナンス アクセス制御 データの復元力 ユーザ同意の管理 Data classification Editions SDK デジタルチャネル Voice SMS/Messaging Email Video アイデンティティ Conversations Facebook Messenger WhatsApp Data Edition Admin Edition Security Edition Enterprise Edition 洞察・知見 CLI サービス ローコード & ノー コード サービス Authy Verify Lookup Studio TaskRouter AI/機械学習 Debugger Audience Predictions Language Intelligence Individualized Sending Functions Assets 主要インフラストラクチャ Super Network コミュニケーション・インフラ Phone Numbers Interconnect Short Codes SIP Trunking IoT Sync Segment CDP 顧客データ・インフラ Segment Connections Segment Personas AI: 人工知能、 CDP: 顧客データプラットフォーム、 SDK: ソフトウェア開発キット、 CLI: コマンドラインインタフェース 各種リソース プログラム Context Store Event Streams © 2022 TWILIO INC. ALL RIGHTS RESERVED.
Twilio = 様々なコミュニケーションチャネルをクラウドを介し、 プログラム可能な状態で利用できるサービス © 2019 TWILIO INC. ALL RIGHTS RESERVED.
たとえば: 自動音声応答(IVR)として 「再配達の受付は 1を、担当者と話す 場合は2を押して ください。」 © 2022 TWILIO INC. ALL RIGHTS RESERVED.
たとえば: サインイン時の認証インフラとして 電話・SMSで 認証コードを送信 © 2022 TWILIO INC. ALL RIGHTS RESERVED.
たとえば: サーバーの死活監視の一部として サーバーの死活監視(午前2時の電話システム) © 2022 TWILIO INC. ALL RIGHTS RESERVED.
本日カバーする内容 1 SMSとEmailの違い SMSの利点 2 Twilio Programmable Messagingを使ったSMS送信 3 メッセージングサービスの活用 © 2022 TWILIO INC. ALL RIGHTS RESERVED.
SMS Email © 2020 2022 TWILIO INC. ALL RIGHTS RESERVED.
タイミングが重要 後から振り返る SMSが好まれる Emailが好まれる 二要素認証 緊急警報 悪天候通知 お客様の声 (アンケート) 残高不足通知 支払い通知 予約のリマインダや キャンセルなどの変更通 知 ラストワンマイル 配送通知 アカウント作成確認 お得なキャンペーン 週刊/月刊 ニュースレター BOPIS 予約確認 不審な購買行動の 警告通知 アカウントのアクティビ ティレポート カスタマーサクセス 注文書 購入明細書 © 2022 TWILIO INC. ALL RIGHTS RESERVED.
98% - 開封率 さらに3秒以内に開封する率は90%以上 対して Eメールは90分以内の開封率が 20%程度 SMSの利点 お客様に重要な情報を素早く伝える 最も効果的な方法 45% - 返信率 Eメールの回答率は8% 70%の消費者が企業からの SMSでの コミュニケーションに好意的 日本では新たなコミュニケーション方法 © 2020 2022 TWILIO INC. ALL RIGHTS RESERVED.
エンゲージ|ユースケース 応える|ユースケース 維持|ユースケース 店舗の開店・営業時間のお知らせ 店頭受け取り(BOPIS) 満足度調査 ● 店舗の営業時間変更を知らせるSMSを送信。最近では COVID19の影響を受けて、店舗の営業時間が頻繁に変更 ● ● オンラインで購入→店頭で受け取り可能に。 ● 購入後、サービス提供後のアンケート取得目的 顧客満足度を向上につなげる COVID19の影響でBOPISのユースケースが259%増加 されるので、そのような利用用途にも対応可能 非接触型配送通知 予約確認 ● 店舗での予約をリマインドするために送信される SMS カート放棄のお知らせ ● ● カート放棄とは、ウェブページかアプリケーションを訪れ たお客様が、購入手続きを完了する前にそのページを離れ てしまうことを表すeコマース用語 カート放棄をしたままの お客様への通知 配達員に会う必要がなく、SMSで荷物がドアの外にある ことを知らせる 価格低下の通知 ● 興味を示した製品の価格が下がったことをお知らせ 在庫のお知らせ、在庫追跡と再入荷 ● 在庫が少なくなった時や人気商品が再入荷した時に 関係者にSMSを送信 個人情報の確認 ● 2要素認証でユーザーの個人情報を保護
金融業界|SMS通知のユースケース 2FA製品コンセプト|偽装アカウント作成対策 残高不足通知 ● 詐欺師が偽造できない 電話番号で メールでは見落とされがちな残高不足通知をSMSで通知し、 高い開封率を実現 アカウントの有効性を認証 支払い通知 ● 銀行振り込み依頼や振り込み実施についての通知を SMSで送信 不審な購買行動の警告通知 ● 決済の確認や口座への異常なアクセス行為に対応するため、 ユーザーが 認証 認証 不審な購買行動の警告通知を送付 ユーザーに SMSでコード を送信 ユーザーはコードを入力
Twilio Programmable Messagingを使ったSMS送信 © 2020 2022 TWILIO INC. ALL RIGHTS RESERVED.
Twilioが提供する 電話番号 HTTPリクエスト アプリ 公衆交換電話網 (PSTN)を 通して配信 HTTPレスポンス (送信ステータスなど) © 2022 TWILIO INC. ALL RIGHTS RESERVED.
まずはTwilioから電話番号を購入する! © 2022 TWILIO INC. ALL RIGHTS RESERVED.
© 2022 TWILIO INC. ALL RIGHTS RESERVED.
日本の番号について https://www.twilio.com/guidelines/jp/regulatory https://bit.ly/twilio-bundles-japan • 現時点では企業・法人のみに提供中 • 事前にRegulatory Bundle(規制情報)に 関わる書類を提出する必要あり • 申請書 • 法人登記簿謄本 • 申請者の個人情報 • Twilioを「試す」時点では米国番号などを利用 • SMSの送信元としては利用できない © 2022 TWILIO INC. ALL RIGHTS RESERVED.
Twilioが提供する 電話番号 HTTPリクエスト アプリ 公衆交換電話網 (PSTN)を 通して配信 HTTPレスポンス (送信ステータスなど) © 2022 TWILIO INC. ALL RIGHTS RESERVED.
© 2020 2022 TWILIO INC. ALL RIGHTS RESERVED.
© 2020 2022 TWILIO INC. ALL RIGHTS RESERVED.
コードでSMSを送信
// Twilio認証情報
const { TWILIO_ACCOUNT_SID, TWILIO_AUTH_TOKEN } = process.env;
// Twilio Nodeヘルパーライブラリを初期化
const client = new client(TWILIO_ACCOUNT_SID, TWILIO_AUTH_TOKEN);
// 送信元・送信先の番号をE.164形式で記述
const from = '';
const to = ''
// メッセージの送信
client.messages.create({
from: from,
to: to,
body: '最近暑くなってきましたね。故障を防ぐため、夏前にはエアコンの掃除を忘れないようにしましょう!'
})
© 2020
2022 TWILIO INC. ALL RIGHTS RESERVED.
Twilioが提供する 電話番号 HTTPリクエスト アプリ 公衆交換電話網 (PSTN)を 通して配信 HTTPレスポンス (送信ステータスなど) Twilioからのレスポンスは 非同期で返される © 2022 TWILIO INC. ALL RIGHTS RESERVED.
リクエストの結果を取得(送信直後)
// メッセージの送信
client.messages.create({
from: from,
to: to,
body: '最近暑くなってきましたね。故障を防ぐため、夏前にはエアコンの掃除を忘
れないようにしましょう! '
}).then(message =>
console.log(`SID: ${message.sid} ステータス : ${message.status}`));
このコードで確認できるのは
リクエストを送った直後のステータスのみ
© 2020
2022 TWILIO INC. ALL RIGHTS RESERVED.
ステータスコールバックを使用
// メッセージの送信
// ステータスコールバック用エンドポイント
client.messages.create({
app.post("/status-callback", (req, res) => {
from: from,
const { MessageStatus, MessageSid } = req.body;
to: to,
console.log(`${MessageSid}: ${MessageStatus}`);
body: '最近暑くなってきましたね。故障を防ぐため、夏前にはエアコンの
res.contentType("application/xml");
res.send("<Response/>");
掃除を忘れないようにしましょう!',
statusCallback: 'https://daizen.ngrok.io/status-callback'
});
})
.then(message => console.log(`SID: ${message.sid} ステータス:
${message.status}`));
ステータスの変更を
指定したエンドポイントに逐次送信
© 2020
2022 TWILIO INC. ALL RIGHTS RESERVED.
英数字送信者 ID(Alpha Numeric Sender ID)の利用
送信専用
// メッセージの送信
client.messages.create({
from: 'neri78',
to: to,
body: '最近暑くなってきましたね。故障を防ぐため、夏前にはエアコンの掃除を忘れないようにしま
しょう!',
statusCallback: 'https://daizen.ngrok.io/status-callback'
})
.then(message => console.log(`SID: ${message.sid} ステータス: ${message.status}`));
© 2020
2022 TWILIO INC. ALL RIGHTS RESERVED.
メッセージングサービスの活用 © 2020 2022 TWILIO INC. ALL RIGHTS RESERVED.
SMSの制限 ● 同時送信数の制限 ○ 米国またはカナダの電話番号 ■ 1メッセージ/秒 ○ 米国またはカナダの無料( toll-free)電話番号 ■ 3メッセージ/秒 ○ 上記以外の国の電話番号および英数字送信者ID (Alphanumeric Sender ID) ■ 10メッセージ/秒 ● 大量送信が想定される場合は、 メッセージングサービス を利用 © 2020 2022 TWILIO INC. ALL RIGHTS RESERVED.
MessagingコンソールでSMSをセットアップ https://twilio.com/console/sms © 2020 2022 TWILIO INC. ALL RIGHTS RESERVED.
MessagingコンソールでSMSをセットアップ https://twilio.com/console/sms メッセージングサービスの選択・作成 電話番号の選択 © 2020 2022 TWILIO INC. ALL RIGHTS RESERVED.
おまけ: コンソールから送信 © 2020 2022 TWILIO INC. ALL RIGHTS RESERVED.
Messaging Services 複数の電話番号を束ねてメッセージを送信できる let messagingServiceSid = 'MG5ea180bde6425f95f556463abf237937' ● ● ● ● ● ● ● 1つのサービスに登録できる電話番号は400まで オプトアウト機能 Alpha Sender ID 固定送信者番号 同一地域番号での送信(US/Canada) 同一国番号での送信 Etc. client.messages.create({ messagingServiceSid: messagingServiceSid, to: messageToNumber, body: 'メッセージの送信 by Messaging Service', statusCallback: 'https://daizen.ngrok.io/statuscallback' }) 直近のアップデートでスケジューリングも可能に https://jp.twilio.com/docs/sms/services © 2020 2022 TWILIO INC. ALL RIGHTS RESERVED.
メッセージングサービスを用いたスケジューリング
// メッセージングサービス SID
const messaging_service_sid = '';
// 送信日時 - 現時点から 60分 ~ 7日のレンジ
const SendOn = new Date(2022, 3, 12, 14, 0, 0);
console.log(`日本時間における送信設定日時 : ${SendOn.toLocaleString("ja-JP")}`);
// 実際にはこちらの値が設定される
console.log(`送信設定日時 : ${SendOn.toISOString()}`);
client.messages.create({
messagingServiceSid: messaging_service_sid,
to: to,
body: 'スケジューリング ',
scheduleType: 'fixed',
sendAt: SendOn.toISOString()
}).then((message) => console.log(message.sid))
.catch((err) => console.log(err));
© 2020
2022 TWILIO INC. ALL RIGHTS RESERVED.
Q&A クロージング © 2020 2022 TWILIO INC. ALL RIGHTS RESERVED.
リソース • Twilio Programmable Messagingハンズオン https://github.com/neri78?tab=repositories&q=twilio+handson • 日本語Blog記事 https://www.twilio.com/blog/tag/japanese • 営業へのお問い合わせ https://www.twilio.com/japan/help/sales © 2020 2022 TWILIO INC. ALL RIGHTS RESERVED.
Thank you © 2020 TWILIO INC. ALL RIGHTS RESERVED.