Programmable Messaging Rubyクイックスタート
Ahoy there!Twilioのメッセージングチャネルを使用して転送されるすべてのメッセージングは、アプリケーション対個人メッセージング(A2P)として処理され、Twilioのメッセージポリシーの対象になります。Twilioのサービスを使用する間、遵守しなければならないポリシールールの詳細については、サービス利用ポリシーを参照してください。
必要なものはコード数行のみ。Twilio Programmable SMSを使用し、Rubyアプリケーションからテキストメッセージを送受信することができます。
このRuby SMSクイックスタートでは、Communications REST API、Twilio Rubyヘルパーライブラリー、RubyのSinatraフレームワークを使用し、簡単に開発する方法を説明します。Railsの使用をご希望の場合は、こちらのブログ記事をご覧ください。
このクイックスタートでは、以下について説明します。
1.Twilioにサインアップし、SMS対応のTwilioの電話番号を取得する
2.メッセージを送受信するための開発環境を設定する
3.SMSを送信してみる
4.テキストメッセージを受信する
5.SMSを使用しメッセージに返信する
ビデオもご用意しています。Ruby SMSクイックスタートビデオ(YouTube)をご覧ください。
Twilioにサインアップまたはサインインする
すでにTwilioアカウントをお持ちですか。その場合はこのセクションを省略できます。
無料のTwilioトライアルアカウントを取得するには、こちらからサインアップしてください。
- サインアップの際に、お客様個人の電話番号を確認させていただきます。これにより、Twilioがお客様を確認することができ、お客様はトライアルモード中にTwilioアカウントからご自身の電話にテストメッセージを送信することができます。
- 電話番号の確認を終えると、設定をカスタマイズするための一連の質問があります。
- 登録フローを終えると、Twilio Consoleにプロジェクトダッシュボードが表示されます。このダッシュボードを使用し、アカウントSID、認証トークン、Twilio電話番号などにアクセスできます。
Twilio CLIをインストールする
いくつかのタスクで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に入力するための固有アカウントSIDと認証トークンを確認します。
「目」のアイコンをクリックすると、認証トークンが表示されます。
電話番号を取得する
SMS機能付きのTwilioの電話番号をお持ちではない場合は、ご購入いただく必要があります。CLIを使用し次を実行します。
twilio phone-numbers:buy:local --country-code US --sms-enabled
米国以外の電話番号を使用する場合は、USをご希望のISO-3166-1国コードに置き換えます。SMS対応の番号が見つからない場合は、固定電話番号の代わりに携帯電話番号を探してみてください。twilio phone-numbers:buy:mobile --country-code DE --sms-enabled
アカウントに追加する電話番号を選択します。
次に、RubyとTwilio Rubyヘルパーライブラリーをインストールします。
RubyとTwilioヘルパーライブラリーをインストールする
他のRubyのクイックスタートのいずれかをすでに終えており、RubyとTwilio Rubyヘルパーライブラリーがインストールされている場合は、このステップを省略し、最初のテキストメッセージの送信に進んでください。
SMSを送信するには、RubyとTwilio Rubyヘルパーライブラリーをインストールしておく必要があります。
Rubyをインストールする
MacマシンまたはLinuxマシンをご使用の場合には、Rubyがすでにインストールされている可能性があります。ターミナルを開き、以下のコマンドを実行することで確認できます。
$ ruby --version
次のように表示されます。
ruby 2.7.2
Windowsユーザーは、RubyInstallerを使用し、Rubyをインストールできます。
TwilioのRuby SDKは、Rubyバージョン2.4から3.0までをサポートしています。(Rubyの以前のバージョンをご使用の場合には、rbenv、RVM、またはHomebrewを使用し、サポート対象のバージョンにアップグレードできます。)
Twilio Rubyヘルパーライブラリーをインストールする
twilio-rubyは、RubyGemsからインストールするのが最も簡単な方法です。
gem install twilio-ruby
手動のインストール
または、twilio-rubyのソースコードを複製し、そこからライブラリーをインストールすることもできます。
「Permission Denied」(権限が拒否されました)
実行中、コマンドラインにPermission Denied(権限が拒否されました)という長いエラーメッセージが表示された場合は、上記のコマンドにsudoを使用し、sudo gem install twilio-rubyを実行します。
Rubyを使用しSMSメッセージを送信する
これでRubyとtwilio-ruby
をインストールできたため、たった1つのAPIリクエストで、購入したTwilioの電話番号からテキストメッセージを送信できるようになりました。send_sms.rb
という新しいファイルを作成します。このファイルを開き、コードサンプルを入力するか、貼り付けます。
メッセージを送信する前に、このファイルをもう少し編集する必要があります。
プレースホルダの認証情報値を置き換える
account_sidとauth_tokenのプレースホルダ値を、ご自身のTwilio認証情報に置き換えます。
https://www.twilio.com/consoleに移動し、ログインします。このページでは、お客様固有のアカウントSIDと認証トークンを確認できます。この作業は、今回のようにTwilio Clientによりメッセージを送信する際に必要となります。[view](表示)をクリックすると、認証トークンが表示されます。
send_sms.rb
を開き、account_sid
とauth_token
の値をご自身の固有の値に置き換えます。
注意: 最初は認証情報を直接コードに埋め込んでも問題ありませんが、本番環境にデプロイするまでには、必ず環境変数を使用し、認証情報を保護してください。詳細については、環境変数の設定方法をご覧ください。
「from」の電話番号を置き換える
数分前に購入したSMS対応の電話番号を覚えていますか。入力されているfromの番号を、その番号に置き換えます。必ずE.164形式を使用してください。
[+][国コード][エリアコードを含む電話番号]
「to」の電話番号を置き換える
toの電話番号をご自身の携帯電話番号に置き換えます。テキストメッセージを受信できる電話番号であればどの番号でも構いませんが、たった1つのAPIリクエストが起こすマジックを体験するために、ご自身の番号を使用することをお勧めします。上記のように、この値にはE.164形式を使用します。
変更内容を保存し、ターミナルからこのスクリプトを実行します。
ruby send_sms.rb
これで完了です。すぐに、Twilioの電話番号から、携帯電話にSMSが到着するはずです。
顧客がアメリカやカナダにいる場合は、コード一行あれば、顧客にMMSメッセージを送信することもできます。その方法については、こちらのMMS送信ガイドをご覧ください。
Twilioのトライアルアカウントを使用している場合は、Twilioにより確認された電話番号のみにSMSメッセージを送信することができます。電話番号は、Twilio Consoleの認証済み発信者IDにより認証できます。
Sinatraをインストールし、開発環境を設定する
SMSメッセージを受信し返信するには、リクエストを受信可能な軽量のWebアプリケーションを作成する必要があります。このクイックスタートではSinatraを使用しますが、Railsの使用をご希望の場合には、こちらのブログ記事の手順をご覧ください。
まず、以下を含むGemfileが必要です。
# Gemfile
source 'https://rubygems.org'
gem 'sinatra'
gem 'twilio-ruby'
RubyプロジェクトはBundlerを使用し、依存関係を管理します。SinatraとTwilio SDKを開発環境に取り込むコマンドは、bundle install
です。
bundle install
...
Use `bundle show [gemname]` to see where a bundled gem is installed.
シンプルなSinatraアプリケーションを作成する
シンプルなSinatraアプリケーションを作成することにより、開発環境が正しく構成されているかをテストできます。以下のコードをコピーし、quickstart.rb
という新しいファイルに貼り付けます。
require 'sinatra'
get '/' do
"Hello World!"
end
次に、ruby quickstart.rb
コマンドを使用し、新しいSinatraアプリケーションを実行します。ブラウザーでhttp://localhost:4567を開くと、「Hello World!」メッセージが表示されるはずです。
Sinatraを使用し、SMSメッセージを受信・返信する
誰かがお客様のTwilioの電話番号にSMSを送信すると、Twilioは、お客様のサーバーに対してHTTPリクエストを実行し、次の処理について指示を求めます。そのリクエストの受信後、お客様はTwilioに、SMSでの返信、音声通話の開始、データベースへのSMSの詳細の保存、または他の作業のトリガーなどを自由に指示することができます。
このクイックスタートでは、Sinatraアプリを使用し、SMSメッセージの送信者に対し、お礼のメッセージを送信します。再度quickstart.rb
を開き、以下のコードサンプルのようにコードを更新します。
ファイルを保存し、以下のコードを使用しアプリを再起動します。
ruby quickstart.rb
ngrokがまだローカルホストのポートで実行されていることを再確認します。これでTwilioがお客様のアプリケーションにアクセスできるようになりますが、まずTwilioに場所を知らせる必要があります。
Webhook URLを設定する
新しいメッセージを受信するたびにWebhook URLを呼び出すよう、Twilioの電話番号を設定する必要があります。電話番号をお使いのTwilioの電話番号に置き換え、次のCLIコマンドを実行します。
twilio phone-numbers:update "+15017122661" --sms-url="http://localhost:4567/sms-quickstart"
このCLIは、Twilioが開発マシンにアクセスできるようにngrok tunnelを起動し、受信テキストを待機します。
テキストを使用しアプリケーションをテストする
これですべてが繋がりました。テストしてみましょう。
お使いの携帯電話から、お使いのTwilioの電話番号にテキストメッセージを送信します。ここで以下の2つのアクションが瞬時に行われます。
- Sinatra開発サーバーが新しい接続を検出します。
- Twilioが返信をSMSとして転送します。
次のステップ
RubyとSinatraによるSMSテキストメッセージの送受信の基本が理解できました。次に以下のリソースもご覧ください。
- Twilio SMSのAPIリファレンスドキュメントを読む
- Rubyを使用しSMS会話を作成する方法を学ぶ
- Rubyを使用しメッセージの配信ステータスを追跡する
- 通話中にSMSを送信する
- Twilioの使用方法を自分のペースで学べる、インタラクティブゲームのTwilioQuestを利用してみる。
お客様の成功が私たちの喜びです。
サポートが必要ですか?
コーディングに関するご質問、ご不明点等ございましたら、お問い合わせからご連絡いただくか、TwilioのStack Overflow Collectiveにアクセスいただくか、Stack OverflowサイトでTwilioタグを検索してください。