https://d226lax1qjow5r.cloudfront.net/blog/blogposts/how-to-send-sms-messages-with-elixir-dr/E_SMS-Elixir_1200x600.png

ElixirでSMSメッセージを送信する方法

最終更新日 April 28, 2021

所要時間:2 分

SMSは今日でもグローバルなコミュニケーションの大部分を支えています。 Nexmo Elixir SDKを使えば、ElixirでSMSメッセージの送信を始めることができます。必要なのは、Nexmoアカウント、仮想電話番号、そして数行のコードだけです。

このチュートリアルでは、Elixirで初めてSMSメッセージを送信する手順を説明します。Elixirの基本的な知識があれば始められます!

お望みなら 完全に動作するバージョンををクローンすることもできる。

前提条件

このチュートリアルには以下のものが必要です:

Vonage API Account

To complete this tutorial, you will need a Vonage API account. If you don’t have one already, you can sign up today and start building with free credit. Once you have an account, you can find your API Key and API Secret at the top of the Vonage API Dashboard.

あなたのネクスモ資格と電話番号

SMSを送信するには、Nexmo APIキーとシークレットを取得する必要があります。また、Nexmoのプロビジョニングされたバーチャル電話番号を設定する必要があります。一緒にやってみましょう。

API認証情報

サインインしたら ダッシュボードにサインインすると、ページの一番上にAPI認証情報が表示されます。

API credentials in the Vonage Developer DashboardAPI credentials in the Vonage Developer Dashboard

メモして安全な場所に保存しておこう。

バーチャル電話番号

SMSを送信するための次のステップは、バーチャル電話番号をプロビジョニングすることです。Nexmoダッシュボードから、左サイドバーにある Numbersというドロップダウンリンクが表示されます。それをクリックすると、ドロップダウンが展開され、いくつかのオプションが表示されます。をクリックしてください。 Buy Numbers.

Buy numbers menu optionBuy numbers menu option

セクションに移動すると Buy Numbersセクションに移動すると、以下の条件で電話番号を検索できるようになる。 Country, Features, Type.また、特定の数字の組み合わせの電話番号だけを表示するように絞り込むこともできます。

Buy Numbers interfaceBuy Numbers interface

ご都合の良い国番号の電話番号を検索してください。必要なのは SMSFeaturesTypeMobile.ボタンをクリックすると Searchボタンをクリックすると、候補となる Numbers のリストが表示されます。右側のオレンジ色の Buyボタンをクリックして、好きな数字を選ぶことができる。

Buy number buttons in list of available numbersBuy number buttons in list of available numbers

これでNexmoバーチャル電話番号のプロビジョニングは完了です。API認証情報の時と同じように、新しい電話番号を安全な場所にコピーしてください。次のステップで、Elixirを使って最初のSMSを送信するときに使います。

ElixirでSMSを送信する

コード構造の設定

ターミナルからElixirプロジェクトを格納する新しいディレクトリを作成し、そのディレクトリに移動します。このチュートリアルでは、このディレクトリを send-sms-elixir.

mkdir send-sms-elixir cd send-sms-elixir

プロジェクトには3つのファイルが必要です。注意点として、もしこのプロジェクトを公開バージョン管理にコミットする予定があるのなら、あなたの機密情報であるクレデンシャル情報を含む .envファイルをチェックインしないようにしてください。

touch mix.exs send-sms.ex .env

完了したら、あなたの ./send-sms-elixirフォルダーの中にあるはずです:

├── mix.exs
├── send-sms.ex
├── .env

ミックスファイルの定義

外部依存関係を持つElixirプロジェクトでは、その依存関係をプロジェクトにインストールするMixファイルを作成する必要がある。MixはRubyのBundlerやNode.jsのnpmに似ている。

この mix.exs実験的なNexmo Elixir SDKと、環境変数を管理するためのHexパッケージであるEnvyだ:

defmodule SendSms.Mixfile do
  use Mix.Project

  def project do
    [app: :send_sms,
     version: "0.0.1",
     deps: deps]
  end

  defp deps do
     [
       {:nexmo, "0.4.0", hex: :nexmo_elixir},
       {:envy, "~> 1.1.1"}
     ]
  end
end

環境変数の定義

Nexmoバーチャル電話番号を作成し、Nexmo API認証情報を取得しました。次に、これらをアプリケーションに統合するために .envファイルに格納します。ファイル .envファイル内に以下のように記述し、APIキー、APIシークレット、Nexmo電話番号を適切な場所に記述します:

NEXMO_API_KEY=
NEXMO_API_SECRET=
NEXMO_NUMBER=
SMS_API_ENDPOINT="https://rest.nexmo.com/sms/json"

APIキー、シークレット、電話番号に加えて、Nexmo SMS APIエンドポイントも提供します。 .envファイルで提供します。

Elixirコードの定義

これで最初のSMSを送信するコードを作成する準備ができました!ファイルを開き send_sms.exファイルを開き、以下を追加する:

defmodule SendSms do
  use Application

  def start(_type, _args) do
    unless Mix.env == :prod do
      Envy.auto_load
    end
  end

  def send_msg(to_number, message)
    Nexmo.Sms.send(
      from: System.get_env("NEXMO_NUMBER"),
      to: to_number,
      text: message
    )
  end
end

というモジュールを定義する。 SendSmsというモジュールを定義します。 SendSms.start/2環境変数を .envファイルから環境変数をロードする関数を持つ

次に SendSms.send/2という関数を作成し、テキストを送信したい受信者番号と実際のメッセージを引数として受け取ります。この関数の中で、Nexmo Elixir SDKの Nexmo.Sms.send/1関数を呼び出し、Nexmoの仮想番号(環境変数として格納されている)と to_numbermessage.

これで終わりです!これでコードを実行し、メッセージを送信する準備ができました。

アプリケーションの実行

アプリケーションを実行してSMSを送信する最も簡単な方法は、インタラクティブなElixirシェルであるiexでプロジェクトをロードすることです。

まず send_sms.exファイルをコンパイルしよう。 send_msg/2関数をシェル内で使えるようにする。コンパイルするために必要なのは、コマンドラインから実行することだけだ: elixirc send_sms.ex.これが終われば、iexの中でアプリケーションを実行することができる。

コマンドラインからiexでプロジェクトを実行するには、以下を実行する: iex -S mix.これでプロジェクトが起動し、シェル内で起動します。

次のようなシェル・プロンプトが表示される:

Interactive Elixir (1.9.2) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> 

この時点で、SMSを送信することができます!

iex(1)> SendSms.send_msg(RECIPIENT_NUMBER, "This is powered by Nexmo on Elixir!")

Nexmo SMS APIからHTTPステータスコード200でメッセージ送信が成功したことを確認します。

おめでとう!

さらに読む

SMSとNexmoについてもっと知りたい方は、以下をご覧ください:

シェア:

https://a.storyblok.com/f/270183/384x384/e5480d2945/ben-greenberg.png
Ben Greenbergヴォネージの卒業生

ベンはセカンドキャリアの開発者で、以前は成人教育、コミュニティ組織化、非営利団体運営の分野で10年を過ごした。彼はVonageの開発者支援者として働いていた。コミュニティ開発とテクノロジーの交差点について定期的に執筆している。南カリフォルニア出身で、長年ニューヨークに住んでいたが、現在はイスラエルのテルアビブ近郊に在住。