
クエステトラユーザのみなさん、こんにちは。開発責任者の畠中です。
以前のブログ「申込みフォームで、電話番号の存在確認をはさむ」の最後にて
電話番号を携帯電話番号に特化すれば、電話ではなく SMS で十分じゃないかという話もあります。
と言及しました。
申込フォームで、電話番号の存在確認をはさむ
Twilio では SMS を扱うこともできますので、今回は SMS の送信に取り組みたいと思います。
今回は、Twilio の 「SMS を送信する API」を使用します。
Programmable SMS: Send an SMS with the SMS API
電話をかける API は 2 ステップ必要でしたが、こちらは 1 ステップで実現できます。簡単です。
特定の URL に対して、以下のパラメータを含めて、POST リクエストを送るだけです。
- 送信元番号
- 送信先電話番号
- 内容
ただし、使用する電話番号に注意点があります。Twilio で購入することのできる日本の電話番号では、SMS を送信することができません。したがって、「日本以外」の電話番号で、かつ日本に SMS を送信することのできる電話番号を購入する必要があります。国によっては、SMS を使えるのだけど、同国内宛にしか SMS を送れない場合があります。アメリカの電話番号だと、世界中どこにでも SMS を送信することができます。
添付のものだと、電話 / SMS / FAX すべて取り扱うことができます。MMS (Multimedia Messaging Service) については、Twilio は日本未対応のようなので、関係がありません。
それでは、簡単なワークフローアプリを作成します。
- 「入力」で、宛先(電話番号)とメッセージを入力
- 「送信」はメッセージ送信中間イベント (HTTP) で、Twilio の「SMS を送信する API」を呼び出す
という流れになっています。
データ項目は以下のとおりです。
入力チェック等は今回のポイントではありませんが、前回の内容に引き続き設定するようにしています。
データ項目名 | データ型 | 必須 | 「入力」工程 |
---|---|---|---|
件名 | 文字型単一行 | 編集可 | |
電話番号 | 文字型単一行 | ○ | 編集可 |
満たすべき正規表現: \+81\d{9,10} |
|||
プレースホルダ: +8175205XXXX |
|||
説明:
国番号(+81) から始めてください。<br>ハイフン抜き、数字のみでお願いします。 |
|||
本文 | 文字型複数行 | ○ | 編集可 |
最大文字数: 100 |
アプリ内で設定している変数の一覧を示します。
変数 | 値 |
---|---|
AccountSID | Twilio のアカウント ID (アカウント SID)。アクセスURLを指定する際に利用します。 |
PhoneNumber | 発信用電話番号。Twilio で購入したもの。国際電話の形式で指定。 |
最後に、メッセージ送信中間イベント (HTTP) の設定です。まず、[通信設定]タブを次のように設定します。
アクセス URL | https://api.twilio.com/2010-04-01/Accounts/${var[AccountSID]}/Messages.json |
---|---|
HTTP Method | POST (application/x-www-form-urlencoded) |
次に[ヘッダ]タブにて[Authorization ヘッダを指定する]オプションをオンにし、[設定はこちら]から HTTP 認証設定を追加し選択します。
(認証タイプ) | Basic 認証 |
---|---|
名前 | HTTP 認証設定の名前(「Twilio API」など、任意の名前) |
ユーザ名 | Twilio のアカウント ID (アカウント SID) |
パスワード | API へのアクセスに使用するトークン (AUTHTOKEN) |
[送信パラメータ]については以下の通りです。
パラメータ名 | 値 |
---|---|
From | ${var[PhoneNumber]} |
To | 「電話番号」 |
Body | 「本文」 |
これでアプリの開発は以上です。本文に入力した通りの内容が、SMS で携帯電話/スマートフォンに送信されます。
1つ注意点。SMS を受信する携帯電話/スマートフォンの設定で、海外からの SMS を受信しない設定になっている場合があります。端末の設定ではなく、携帯電話会社のサービスの設定で、そのようになっている場合があります。その場合、このワークフローアプリから送信される SMS を受信することはできません。日本国内からの SMS ではないからです。
今回は以上です。次回は、このメッセージ送信中間イベント (HTTP) の部分を、スクリプトタスクに変更したいと思います。それではまた。
ピンバック: ワークフローの途中で、SMS を送信する — スクリプトタスク版 — – Questetra Support