Node.js向けProgrammable SMSクイックスタート
Ahoy there!Twilioのメッセージングチャネルを使用して転送されるすべてのメッセージングは、アプリケーション対個人メッセージング(A2P)として処理され、Twilioのメッセージポリシーの対象になります。Twilioのサービスを使用する間、遵守しなければならないポリシールールの詳細については、サービス利用ポリシーを参照してください。
Twilio Programmable SMSを使用し、Node.jsアプリケーションとの間でテキストメッセージを送受信することができます。必要なのはコード数行のみです。
このNode.js SMSクイックスタートでは、Communications REST APIとTwilio Node.jsヘルパーライブラリーを使用し、テキストメッセージを送受信する方法をご紹介します。
このクイックスタートでは、以下について説明します。
- Twilioにサインアップし、SMS対応のTwilioの電話番号を取得する
- 開発環境を設定し、メッセージを送受信する
- SMSを送信してみる
- テキストメッセージを受信する
- SMSを使用しメッセージに返信する
ビデオもご用意しています。Node.js SMSクイックスタートビデオ(YouTube)をご覧ください。
Twilioにサインアップし、Twilioの電話番号を取得する
Twilioアカウント、SMS対応のTwilio電話番号をすでにお持ちの場合は、次のステップに進んでください。
無料のTwilioトライアルアカウントには、こちらからサインアップできます。
- サインアップの際に、お客様個人の電話番号を確認させていただきます。これにより、Twilioがお客様を確認することができ、お客様はトライアルモード中にTwilioアカウントからご自身の電話にテストメッセージを送信することができます。
- 電話番号の確認を終えると、設定をカスタマイズするための一連の質問があります。
- 登録フローを終えると、Twilio Consoleにプロジェクトダッシュボードが表示されます。このダッシュボードを使用し、アカウントSID、認証トークン、Twilio電話番号などにアクセスできます。
SMS機能付きのTwilioの電話番号をお持ちではない場合は、ご購入いただく必要があります。[Buy a Number](番号を購入する)ページに移動し、["SMS"]ボックスをチェックし、["Search."](検索)をクリックします。
使用可能な電話番号とその機能のリストが表示されます。好みの番号を探し、["Buy"](購入)をクリックしアカウントに追加します。
他のNode.jsのクイックスタートのいずれかをすでに終えており、Node.jsとTwilio Node.jsヘルパーライブラリーがインストールされている場合には、このステップを省略し、直接最初のテキストメッセージの送信に進むことができます。
SMSを送信するには、事前にNode.jsとTwilio Node.jsモジュールがインストールされている必要があります。
Node.jsをインストールする
ターミナルを開き、以下のコマンドを実行すると、マシンにNode.jsがすでにインストールされているかを確認できます。
node --version
次のように表示されます。
$ node --version
v8.9.1
Node.jsがインストールされていない場合には、nodejs.orgに移動し、システムに対応するインストーラーをダウンロードします。Nodeのインストール後、ターミナルに戻り、上記のコマンドを再度実行します。インストールされたnodeバージョンが表示されない場合は、ターミナルの再起動が必要になる場合とがあります。
Twilio Node.jsモジュールをインストールする
npmを使用し、Twilio Nodeヘルパーライブラリーをインストールします。
npm install twilio
これにより、「twilio」モジュールがインストールされ、カレントディレクトリに格納されているNode.jsスクリプトがモジュールを使用できるようになります。
Node.jsを使用しSMSメッセージを送信する
Node.jsとTwilio Node.jsライブラリーがインストールされたため、APIリクエストを一回送るだけで、購入したばかりのTwilioの電話番号からテキストメッセージを送信できます。send_sms.js
というファイルを新規作成します。このファイルを開き、このコードサンプルを入力または貼り付けます。
メッセージを送信する前に、このファイルをもう少し編集する必要があります。
プレースホルダの資格情報値を置き換える
accountSid
とauthToken
のプレースホルダ値を、ご自身のTwilioの認証情報に置き換えます。https://www.twilio.com/consoleを開き、ログインします。このページで、お客様固有のAccount SIDとAuth Tokenを確認できます。今回のように、Twilio Clientを利用しメッセージを送信する際に必要となります。
send_sms.js
を開き、accountSid
とauthToken
の値を、ご自身の固有の値に置き換えます。
注意: 最初は認証情報を直接コードに埋め込んでも問題ありませんが、本番環境にデプロイするまでには、必ず環境変数を使用し、認証情報を保護してください。詳細については、環境変数の設定方法をご覧ください。
"from"の電話番号を置き換える
数分前に購入したSMS対応の電話番号を覚えていますか。入力されているfrom
の番号を、その番号に置き換えます。必ずE.164形式を使用してください。
[+][国コード][エリアコードを含む電話番号]
"to"の電話番号を置き換える
to
の電話番号をご自身の携帯電話番号に置き換えます。テキストメッセージを受信できる電話番号であればどの番号でも構いませんが、プロセスを実際に体験するために、ご自身の番号を使用することをお勧めします。上記のように、この値にはE.164形式を使用します。
変更内容を保存し、ターミナルからこのスクリプトを実行します。
node send_sms.js
これで完了です。すぐに、Twilioの電話番号から、携帯電話にSMSが到着するはずです。
顧客がアメリカやカナダにいる場合は、1行コードを追加するだけで、顧客にMMSメッセージを送信できます。方法については、この[MMS送信ガイド](https://www.twilio.com/docs/guides/how-to-send-sms-messages-in-node-js#send-a-message-with-media-mms-in-nodejs) をご覧ください。
Twilioのトライアルアカウントを使用している場合は、Twilioにより確認された電話番号のみにSMSメッセージを送信することができます。電話番号は、Twilio Consoleの認証済み発信者IDにより認証できます。
Expressを使用し、SMSメッセージを受信・返信する
お使いのTwilio電話番号にメッセージが到着すると、Twilioはお使いのサーバーにHTTPリクエストを送信します。このコールバックメカニズムのことをWebhookといいます。 Twilioがアプリケーションにリクエストを送信すると、Twilioは、メッセージへの応答方法を説明する応答をTwiML XML形式で受け付けます。Expressを使用し、これをNode.jsで構築する方法を見てみましょう。
現在のディレクトリのコマンドラインにおいて以下のコマンドを実行します。
npm install express
「server.js」という名称でファイルを作成し、以下のコード使用し、着信するメッセージを処理するサーバーを作成します。
以下のコマンドを使用し、サーバーを実行します。
node server.js
サーバーがポート1337で起動されます。
Twilioが、アプリケーションにWebhookリクエストを送信する前に、インターネットを介してアプリケーションにアクセスできるようにする必要があります。これはさまざまな方法で可能ですが、ローカル開発中にはTwilio CLIの使用をお勧めします。アプリケーションをメッセージ受信可能にするため、次の設定を行います。
Twilio CLIをインストールする
macOSにtwilio-cli
をインストールするための推奨される方法は、Homebrewを使用することです。インストールがお済みでない場合は、Homebrewサイトに進み、インストールを実行後、本ページにお戻りください。
Homebrewをインストールした後、次のコマンドを実行しtwilio-cli
をインストールします。
brew tap twilio/brew && brew install twilio
twilio-cli
をインストールするための推奨される方法は、Windows向けコマンドラインインストーラーであるScoopを使用することです。インストールがお済みでない場合は、Scoopサイトに進み、インストール手順を実行後、本ページにお戻りください。
注記: Scoop経由でインストールする際、一般的なアクセス許可の問題を回避するには、PowerShellを管理者として実行する必要があります。
- 次の
twilio-cli
のバケットを追加します。
scoop bucket add twilio-scoop https://github.com/twilio/scoop-twilio-cli
- 次のアプリをインストールします。
scoop install twilio
twilio-cli
は、Advanced Package Tool(apt)を使用し、Debian、Ubuntu、Linux Mintなどのほとんどのディストリビューションにインストールできます。
これを行うには、ターミナルで次のコマンドを実行します。
wget -qO- https://twilio-cli-prod.s3.amazonaws.com/twilio_pub.asc \
| sudo apt-key add -
sudo touch /etc/apt/sources.list.d/twilio.list
echo 'deb https://twilio-cli-prod.s3.amazonaws.com/apt/ /' \
| sudo tee /etc/apt/sources.list.d/twilio.list
sudo apt update
sudo apt install -y twilio
その他のインストール方法については、twilio-cliクイックスタートをご覧ください。
twilio login
を実行し、Twilio CLIをアカウントに接続します。https://www.twilio.com/consoleにアクセスし、CLIに入力するための固有のAccount SIDとAuth Tokenを確認します。
「目」のアイコンをクリックすると、Auth Tokenが表示されます。
これにより、CLIを使用し、電話番号をNode.jsアプリに接続できます。
Webhook URLを設定する
新しいメッセージを受信するたびにWebhook URLを呼び出すよう、Twilioの電話番号を設定する必要があります。電話番号をお使いのTwilioの電話番号に置き換え、次のCLIコマンドを実行します。
twilio phone-numbers:update "+15017122661" --sms-url="http://localhost:1337/sms"
この仕組み
Twilio CLIを使用し、お使いの電話番号用のSMS Webhook URLを設定しています。Twilioは、SMSメッセージが受信されるたびに、このURLに対してリクエストを行います。さらにCLIはngrokを使用し、Twilioがローカルの開発環境("localhost")にアクセスするためのトンネルを作成します。
また、Twilio Consoleを使用すればWebブラウザーでWebhookを設定することもできますが、ngrokを自分で起動する必要があります。
アプリケーションをテストする
node server.js
とtwilio
コマンドの両方を、コマンドラインで実行します(別々のタブを使用)。
これらの両方が実行されている状態のまま、新しいExpressアプリケーションをテストします。
お使いの携帯電話から、このWebhookを使用し設定されたTwilioの電話番号にSMSを送信します。ngrokコンソールにHTTPリクエストが表示されます。Expressアプリはテキストメッセージを処理し、応答がSMSで届きます。
次のステップ
Node.jsを使用したSMSとMMSのテキストメッセージ送受信の基本が理解できました。以下のリソースもご覧ください。
- REST APIドキュメント
- TwiMLリファレンスドキュメント
- Node.jsでのサンプルアプリケーションのチュートリアル
- Twilioを使用し、Nodeでテキストを30秒で送信する
- Node.js、Express、Twilioを使用し、テキストメッセージを受信応答する方法
コーディングを楽しみましょう!
サポートが必要ですか?
コーディングに関するご質問、ご不明点等ございましたら、お問い合わせからご連絡いただくか、TwilioのStack Overflow Collectiveにアクセスいただくか、Stack OverflowサイトでTwilioタグを検索してください。