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

SMS-Nachrichten mit Elixir versenden

Zuletzt aktualisiert am April 28, 2021

Lesedauer: 6 Minuten

SMS ist nach wie vor ein wichtiger Bestandteil unserer globalen Kommunikation, und mit dem neuen experimentellen Nexmo Elixir SDK können Sie mit dem Versand von SMS-Nachrichten in Elixir beginnen. Alles, was Sie brauchen, ist ein Nexmo Account, eine virtuelle Telefonnummer und ein paar Zeilen Code.

In diesem Tutorial gehen wir die Schritte durch, um Ihre erste SMS in Elixir zu versenden. Sie brauchen nur ein grundlegendes Verständnis von Elixir, um loszulegen - den Rest machen wir gemeinsam!

Wenn Sie möchten, können Sie auch eine voll funktionsfähige Version klonen dieses Codes auf GitHub klonen.

Voraussetzungen

Für diesen Lehrgang benötigen Sie Folgendes:

  • Elixier auf Ihrem Computer installiert

Vonage API-Konto

Um dieses Tutorial durchzuführen, benötigen Sie ein Vonage API-Konto. Wenn Sie noch keines haben, können Sie sich noch heute anmelden und mit einem kostenlosen Guthaben beginnen. Sobald Sie ein Konto haben, finden Sie Ihren API-Schlüssel und Ihr API-Geheimnis oben auf dem Vonage-API-Dashboard.

Ihre Nexmo-Anmeldedaten und Telefonnummer

Um eine SMS zu versenden, müssen Sie Ihren Nexmo API-Schlüssel und Ihr Geheimnis erhalten. Außerdem müssen Sie eine von Nexmo bereitgestellte virtuelle Telefonnummer einrichten. Lassen Sie uns das jetzt gemeinsam tun.

Ihre API-Anmeldeinformationen

Sobald Sie sich auf dem Nexmo Dashboardangemeldet haben, sehen Sie Ihre API-Anmeldedaten ganz oben auf der Seite.

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

Notieren Sie sie und bewahren Sie sie an einem sicheren Ort auf, wir werden sie gleich verwenden.

Ihre virtuelle Rufnummer

Der nächste Schritt, um eine SMS zu versenden, ist die Einrichtung einer virtuellen Rufnummer. Auf dem Nexmo Dashboard sehen Sie in der linken Seitenleiste einen Dropdown-Link namens Numbers in der linken Seitenleiste. Wenn Sie darauf klicken, erweitert sich das Dropdown-Menü und Sie sehen mehrere Optionen. Klicken Sie auf die Option mit dem Titel Buy Numbers.

Buy numbers menu optionBuy numbers menu option

Sobald Sie zum Abschnitt Buy Numbers können Sie nach einer Telefonnummer suchen, basierend auf Country, Features, Type. Sie können die Suche auch eingrenzen, um nur Telefonnummern mit bestimmten Zahlenkombinationen anzuzeigen.

Buy Numbers interfaceBuy Numbers interface

Suchen Sie nach einer Telefonnummer mit einer für Sie passenden Landesvorwahl. Sie brauchen nur SMS für Features und eine Type von Mobile. Nachdem Sie auf die Schaltfläche Search klicken, sehen Sie eine Liste mit möglichen Numbers. Sie können eine beliebige Zahl auswählen, indem Sie auf die orangefarbene Buy Schaltfläche auf der rechten Seite klicken.

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

Sie haben nun erfolgreich eine virtuelle Nexmo-Telefonnummer eingerichtet. Kopieren Sie Ihre neue Telefonnummer an einen sicheren Ort, so wie Sie es mit Ihren API-Anmeldedaten getan haben. Wir werden sie in unserem nächsten Schritt verwenden, wenn wir unsere erste SMS mit Elixir versenden.

Versenden einer SMS mit Elixier

Einrichten unserer Codestruktur

Erstellen Sie in Ihrem Terminal ein neues Verzeichnis für Ihr Elixir-Projekt und navigieren Sie dann in dieses Verzeichnis. Für die Zwecke dieses Tutorials nennen wir es send-sms-elixir.

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

Wir benötigen drei Dateien für unser Projekt. Zur Erinnerung: Wenn Sie vorhaben, dieses Projekt an die öffentliche Versionskontrolle zu übergeben, achten Sie darauf, dass Sie Ihre .env Datei nicht einchecken, da sie Ihre sensiblen Anmeldeinformationen enthält.

touch mix.exs send-sms.ex .env

Sobald Sie fertig sind, sollten Sie drei Dateien in Ihrem ./send-sms-elixir Ordner befinden:

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

Definieren unserer Mix-Datei

Jedes Elixir-Projekt, das eine externe Abhängigkeit hat, muss eine Mix-Datei erstellen, die diese Abhängigkeit in Ihrem Projekt installiert. Mix ist ähnlich wie Bundler in Ruby oder npm in Node.js, falls Sie es nicht kennen.

In unserer mix.exs Datei werden wir den Namen unseres Projekts und zwei Abhängigkeiten definieren, nämlich das experimentelle Nexmo Elixir SDK und Envy, ein Hex-Paket, das uns bei der Verwaltung unserer Umgebungsvariablen hilft:

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

Definieren unserer Umgebungsvariablen

Wir haben zuvor unsere virtuelle Nexmo-Telefonnummer erstellt und unsere Nexmo-API-Anmeldedaten erhalten. Jetzt werden wir sie in unsere Anwendung integrieren, indem wir sie in unserer .env Datei speichern. Innerhalb Ihrer .env Datei fügen Sie Folgendes ein, wobei Sie den API-Schlüssel, das API-Geheimnis und die Nexmo-Telefonnummer an den entsprechenden Stellen angeben:

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

Zusätzlich zu unserem API-Schlüssel, dem Geheimnis und der Telefonnummer stellen wir auch den Nexmo SMS API Endpunkt in unserer .env Datei den Nexmo-SMS-API-Endpunkt, der vom SDK verwendet wird.

Unser Elixier-Code wird definiert

Jetzt können wir den Code erstellen, mit dem wir unsere erste SMS versenden werden! Öffnen Sie die send_sms.ex Datei und fügen Sie Folgendes hinzu:

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

Im obigen Beispiel definieren wir ein Modul namens SendSms das über eine SendSms.start/2 Funktion, die unsere Umgebungsvariablen aus der Datei .env Datei unter Verwendung des Envy-Pakets lädt.

Dann erstellen wir eine zweite Funktion namens SendSms.send/2 die als Argument die Nummer des Empfängers, an den wir den Text senden wollen, und die eigentliche Nachricht akzeptiert. Innerhalb der Funktion rufen wir die Nexmo Elixir SDK Nexmo.Sms.send/1 Funktion auf und übergeben unsere virtuelle Nexmo-Nummer (gespeichert als Umgebungsvariable), die to_numberund die message.

Das war's! Wir sind nun bereit, unseren Code auszuführen und die Nachricht zu senden.

Die Anwendung ausführen

Der einfachste Weg, Ihre Anwendung auszuführen und eine SMS zu versenden, ist das Laden Ihres Projekts in iex, einer interaktiven Elixir-Shell.

Kompilieren wir zunächst unsere send_sms.ex Datei, die die Funktion send_msg/2 Funktion in der Shell verfügbar macht. Um sie zu kompilieren, müssen wir sie nur von der Kommandozeile aus ausführen: elixirc send_sms.ex. Das sollte nur einen Moment dauern, und sobald es fertig ist, können wir unsere Anwendung innerhalb von iex ausführen.

Um Ihr Projekt in iex von der Kommandozeile aus zu starten, führen Sie Folgendes aus: iex -S mix. Dadurch wird Ihr Projekt gestartet und in der Shell ausgeführt.

Sie werden eine Eingabeaufforderung sehen, die wie folgt aussieht:

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

An dieser Stelle können Sie Ihre SMS versenden!

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

Sie erhalten von der Nexmo SMS API eine Bestätigung, dass Sie die Nachricht erfolgreich mit einem HTTP-Statuscode von 200 gesendet haben.

Herzlichen Glückwunsch, Sie haben es geschafft!

Weitere Lektüre

Wenn Sie mehr über SMS und Nexmo erfahren möchten, lesen Sie bitte die folgenden Seiten:

Teilen Sie:

https://a.storyblok.com/f/270183/384x384/e5480d2945/ben-greenberg.png
Ben GreenbergVonage Ehemalige

Ben ist ein Entwickler im zweiten Beruf, der zuvor ein Jahrzehnt in den Bereichen Erwachsenenbildung, Community-Organisation und Non-Profit-Management tätig war. Er arbeitete als Anwalt für Entwickler bei Vonage. Er schreibt regelmäßig über die Überschneidung von Gemeindeentwicklung und Technologie. Ursprünglich aus Südkalifornien stammend und lange Zeit in New York City ansässig, wohnt Ben jetzt in der Nähe von Tel Aviv, Israel.