
シェア:
Benjamin AronovはVonageの開発者支援者です。彼はRuby on Railsのバックグラウンドを持つ実績のあるコミュニティ・ビルダーです。Benjaminは故郷であるテルアビブのビーチを楽しんでいる。テルアビブを拠点に、世界最高のスタートアップの創設者たちと出会い、学ぶことができる。技術以外では、完璧なパン・オ・ショコラを求めて世界中を旅するのが好き。
Ruby on RailsでSMSメッセージを送信する方法
所要時間:2 分
WhatsAppやFacebook Messengerのようなメッセージングアプリの台頭にもかかわらず、SMSは依然として不可欠です。余分なソフトウェアなしでどのモバイルデバイスでも動作し、時間的制約のあるメッセージでは高いエンゲージメントを誇り、インターネット接続を必要としないため最も信頼性の高いオプションです。
このチュートリアルでは、Ruby on Rails アプリケーションで Vonage を使用して SMS メッセージを送信する方法を説明します。これはVonage Ruby on Rails Quick Startシリーズの最初の投稿で、Ruby on RailsアプリケーションでVonage APIスイートのコア機能を使い始めるためのものです。
TL;DR先にスキップして GitHubのクイックスタートコード
このチュートリアルシリーズでは、オムニチャネルサポートを簡単に統合できるMessages APIを使用しています。Vonageはまた SMS APIも提供しています。
A demonstration of the Vonage Rails Quickstart application sending an SMS message in real time.
前提条件
RubyとRailsのインストールをインストールしてください。Railsの規約に関する質問については、ドキュメントが非常に詳しいです。
Vonageのバーチャル番号。
バーチャル電話番号を購入するには APIダッシュボードにアクセスし、以下の手順に従ってください。
Purchase a phone number
あなたの APIダッシュボード
BUILD & MANAGE > Numbers > Buy Numbersを開きます。
必要な属性を選択し、検索をクリックします。
ご希望の番号の横にある購入ボタンをクリックし、購入を確定する。
バーチャルナンバーを購入したことを確認するには、左側のナビゲーションメニューの「BUILD & MANAGE」から「Numbers」、「Your Numbers」の順にクリックします。
Ruby on Railsアプリケーションの作り方
このチュートリアルでは、あなたがRubyとRailsの基本的な理解を持っていることを前提に、あまり深い説明はせずに必要なコマンドに絞って説明します。
まず、新しいプロジェクトを作成する。
rails new vonage-rails-quickstart次に、プロジェクトに移動し、Vonage SDKにアクセスできるようにGemfileにVonage gemを追加する。また dotenv-railsを追加して、環境変数を安全に使えるようにします。
#Gemfile
gem 'vonage'
gem 'dotenv-rails', groups: [:development, :test]次にbundlerを実行してgemsをインストールする。
bundle install次に、SmsMessageモデルを作成する必要があります。これは、その属性と、それらがデータベースに格納される方法を定義します。6つのフィールドが必要です:
宛先: SMSの受信者。
からSMSの送信者。
テキストメッセージの内容。
ステータス: SMSが正常に配信されたかどうか。詳細は APIリファレンス.
メッセージIDこれはメッセージのステータスを追跡するのに重要です。
is_inboundこれは次のブログ記事で重要になる。
rails g model SmsMessage to:string from:string text:text status:string message_uuid:string is_inbound:boolean
新しいモデルでデータベースを更新する必要もある。
rails db:migrateロジックを処理するコントローラを作成しましょう。
rails g controller OutboundSms new create最後に、送信SMSのルートを定義しましょう。
# config/routes.rb
Rails.application.routes.draw do
# For OutboundSms controller, new & create
get '/outbound_sms/new', to: 'outbound_sms#new', as: :new_outbound_sms
post '/outbound_sms', to: 'outbound_sms#create', as: :outbound_sms
end
Vonageアプリケーションの作成方法
Railsアプリの準備ができたので、Vonageアプリケーションを作成してセットアップする必要があります。まず、アプリを Vonage ダッシュボード.アプリに名前を付け、メッセージ機能をオンにします。今のところ、ウェブフックのプレースホルダURLを追加することができます。今後のブログ記事で更新していきます。
The Vonage Developer dashboard showing the creation of a new application with authentication, privacy, and messaging capabilities settings.
公開鍵と秘密鍵を生成する」をクリックします。これでprivate.keyファイルがコンピュータにダウンロードされます。private.keyファイルをrailsアプリケーションのルートに移動します。
アプリケーションが作成されたら、アプリケーションIDを控えておいてください。次のステップで、アプリケーションID、APIキー、APIシークレットが必要になります。
API設定ページを開くAPI設定ページを開き、Vonage API KeyとSecretにアクセスしてください。両者は以下のスクリーンショットのように表示されます。APIキーはページの上部にあり、APIシークレットにアクセスするには、"Account secret "サブセクションを参照してください。
注:以前に作成したAPIシークレットを覚えていない場合は、"+ Create new secret "をクリックし、安全に保存してください。

を作成する ファイルを作成します。ファイルを作成します:
touch .env最後に、以下のキーを認証情報とともに追加する。
#.env
VONAGE_APPLICATION_ID=''
VONAGE_PRIVATE_KEY='./private.key' Vonage Rubyクライアントの初期化方法
REST APIクライアントを使用すると、Messages APIだけでなく、15のVonage APIに簡単にアクセスできます。サポートされている サポートされているAPI.
完全なRailsアプリケーションでRubyクライアントを有効にする前に、Rubyコードでより一般的にRubyクライアントを使う方法を見てみましょう。クライアントを使うには、環境ファイルに格納されているアプリケーション情報でインスタンスを初期化するだけです。
vonage = Vonage::Client.new(
application_id: ENV["VONAGE_APPLICATION_ID"],
private_key: ENV["VONAGE_PRIVATE_KEY"]
) RubyでSMSメッセージを送信する方法
クライアントが初期化されたので、SMSの送信はとても簡単になります。私たちは メッセージングメソッドを呼び出してMessages APIを使うようにクライアントに指示し、必要なフィールドを指定してsendを呼び出す。
# app/controllers/outbound_sms_controller.rb
response = vonage.messaging.send(
"message_type": "text",
"text": "Hello from Vonage!",
"to": "447700900000",
"from": "447700900001",
"channel": "sms"
)
さまざまなチャンネルとフィールドのすべてのオプションは APIリファレンス.
Ruby on RailsアプリケーションでSMSを送信する
VonageのRubyクライアントを使ってSMSを送信する方法を説明したので、シンプルなフォームとコントローラを使ってRuby on RailsのSMS送信機能をアプリに統合してみましょう。SMSを送信するために を, からそして テキストフィールドがあります。このフォームをコピーして /app/views/outbound_sms/new.html.erbに追加します。ビューと 関連するCSS.
A Vonage-powered SMS form where users can input a sender's phone number or name, the recipient's phone number, and a message before sending an SMS.
注意すべての国が有効な「宛先」フィールドとして名前を受け付けるわけではありません。
では、フォームを動作させるためのロジックを実装してみましょう。まず、フォームを読み込むために空のSMSインスタンスを作成する必要があります。それから create メソッドを呼び出し、SMS をデータベースに保存して メソッドで送信します。メソッドで送信します。
#app/controllers/outbound_sms_controller.rb
def new
@sms_message = SmsMessage.new
end
def create
# Create a SMS record to be stored in the database
@sms_message = SmsMessage.new(safe_params)
if @sms_message.save
deliver @sms_message
redirect_to :new_outbound_sms, notice: 'SMS Sent'
else
flash[:alert] = 'Something went wrong'
render :new
end
end
private
def safe_params
params.require(:sms_message).permit(:to, :from, :text)
endその 配信メソッドは、前のセクションで使ったものとほぼ同じですが、メッセージ メッセージオブジェクトを使用し、APIレスポンスを処理することを除けば、前のセクションで使用したものとほぼ同じです。
メッセージが正常に送信されると、メッセージUUIDとともに202のステータスコードが返される。このUUIDは メッセージステータスを使って配送状況を追跡するのに役立ちます。
def deliver(sms_message)
message = vonage.messaging.sms(message: sms_message.text)
response = vonage.messaging.send(
from: sms_message.from,
to: sms_message.to,
**message
)
if response.http_response.code == '202'
sms_message.update(
message_uuid: response.entity.attributes[:message_uuid]
)
end
end> 完全な アウトバウンド_sms_controller.rbファイルを参照。
次にrailsサーバーを起動する:
rails s
そして http://localhost:3000/outbound_sms/newブラウザで.Ruby on RailsアプリからSMSを送信できるようになります!
結論
やりましたね!Vonageアプリケーションを構築し、Vonage Rubyクライアントを初期化して使用し、Ruby on RailsアプリケーションからSMSを送信する方法を学びました。今後の投稿では、このアプリケーションにさらにSMSとVoiceの機能を追加していきます。
Rubyのコンテンツに関するご質問やご提案がありましたら、下記までお寄せください。 コミュニティ・スラック.また、私たちの開発者向けコンテンツやイベントについては、次のサイトでも情報を得ることができます。 X(旧 Twitter.


