https://a.storyblok.com/f/270183/1368x665/786fc6d717/25mar_dev-blog_ruby-sms.png

Ruby on RailsでSMSメッセージを送信する方法

最終更新日 April 15, 2025

所要時間: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 screen recording of a Ruby on Rails application labeled “Send an SMS,” showing a user entering a sender’s number, a recipient’s number, and a text message. The message “Ruby on Rails Rocks!” appears in the recipient’s messaging app.A demonstration of the Vonage Rails Quickstart application sending an SMS message in real time.

前提条件

  • RubyとRailsのインストールをインストールしてください。Railsの規約に関する質問については、ドキュメントが非常に詳しいです。

  • Vonageのバーチャル番号。

バーチャル電話番号を購入するには APIダッシュボードにアクセスし、以下の手順に従ってください。

Steps on how to purchase a phone number from the dashboard, from selecting the number and confirming the selection.Purchase a phone number

  1. あなたの APIダッシュボード

  2. BUILD & MANAGE > Numbers > Buy Numbersを開きます。

  3. 必要な属性を選択し、検索をクリックします。

  4. ご希望の番号の横にある購入ボタンをクリックし、購入を確定する。

  5. バーチャルナンバーを購入したことを確認するには、左側のナビゲーションメニューの「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を追加することができます。今後のブログ記事で更新していきます。

A user interface for creating a new application in the Vonage Developer dashboard. Fields include the application name, API key, authentication options, privacy settings, and messaging capabilities with inbound and status URLs. A toggle for AI data usage is set to off, and the "Generate new application" button is visible.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 user interface labeled "Send an SMS" with fields for the sender's phone number or name, the recipient's phone number or name, and a text message input box. A purple "Send" button is displayed at the bottom.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.

シェア:

https://a.storyblok.com/f/270183/384x384/e4e7d1452e/benjamin-aronov.png
Benjamin Aronovデベロッパー・アドボケイト

Benjamin AronovはVonageの開発者支援者です。彼はRuby on Railsのバックグラウンドを持つ実績のあるコミュニティ・ビルダーです。Benjaminは故郷であるテルアビブのビーチを楽しんでいる。テルアビブを拠点に、世界最高のスタートアップの創設者たちと出会い、学ぶことができる。技術以外では、完璧なパン・オ・ショコラを求めて世界中を旅するのが好き。