https://d226lax1qjow5r.cloudfront.net/blog/blogposts/send-and-receive-sms-messages-with-node-js-and-express/node-js_express_sms.png

Wie man SMS-Nachrichten mit Node.js sendet und empfängt

Zuletzt aktualisiert am October 4, 2023

Lesedauer: 9 Minuten

Dieser Artikel wurde im Juni 2025 aktualisiert.

Einführung

Die Vonage-Nachrichten-API ermöglicht Ihnen das Senden und Empfangen von Nachrichten über SMS, MMS, Facebook Messenger, Viber, WhatsApp und jetzt sogar RCS! So können Sie mit Ihren Kunden über den Kanal kommunizieren, den sie am meisten lieben.

In diesem Artikel konzentrieren wir uns auf das Senden und Empfangen von SMS-Nachrichten mit Node.js und Express.

Zu Beginn führen wir die einfachste Implementierung der API durch und senden eine SMS-Nachricht mit Node.js und der Vonage-Nachrichten-API.

Als Nächstes werden wir einen Webhook erstellen, der SMS-Nachrichten von Ihrem Telefon mit Express empfangen und eine Aktion ausführen kann, sobald die Textnachricht empfangen wurde.

Abschließend werden wir noch einige Schritte zur Erweiterung der Anwendung durchführen.

Sie können sich auf die Dokumentation für weitere Einzelheiten.

Voraussetzungen

Bevor Sie beginnen, vergewissern Sie sich, dass Sie die folgenden Informationen haben:

  • A Vonage API-Konto

    Öffnen Sie Ihr API-Dashboard um auf Ihren Vonage API-Schlüssel und Ihr Geheimnis zuzugreifen. Beide finden Sie auf der Startseite, wie im Screenshot unten gezeigt.

    Screenshot of the Vonage API Dashboard. The main section welcomes the user, 'Welcome back, Diana,' and features the header 'Vonage API Dashboard.' Two fields are displayed: 'API Key,' showing 'Master (3e6287d2)' with a copy icon, and 'API Secret,' showing a masked value with eye and copy icons.API Key and API Secret

  • Node.js installiert - Node.js ist eine quelloffene, plattformübergreifende JavaScript-Laufzeitumgebung.

  • ngrok - Ein kostenloses Konto ist erforderlich. Mit diesem Tool können Entwickler einen lokalen Entwicklungsserver für das Internet freigeben.

  • Vonage CLI - Sobald Node.js installiert ist, können Sie mit npm install -g @vonage/cli installieren. Mit diesem Tool können Sie Ihre Vonage-Anwendungen erstellen und verwalten.

Wie man eine SMS mit Node.js sendet

Im ersten Teil dieses Tutorials werden wir uns damit beschäftigen, wie man mit Node.js Textnachrichten versendet. Wir verwenden die Vonage-Nachrichten-API um mit Node.js zu arbeiten und SMS-Nachrichten zu verarbeiten. Um eine SMS mit Node.js und der Vonage Messages API zu versenden, folgen Sie diesen Schritten:

  1. Installieren Sie das Vonage Node.js SDK

  2. Ngrok ausführen

  3. Erstellen einer SMS-fähigen Anwendung

  4. Senden Sie die SMS-Nachricht

1. Installieren Sie das Vonage Node.js SDK

Mit der Messages-API ist es einfach, mit Node.js eine SMS zu versenden. Um sie zu verwenden, müssen wir das Vonage Node.js SDK.

npm install @vonage/server-sdk

Vonage verfügt zwar über zwei verschiedene APIs zum Senden und Empfangen von SMS, Sie können jedoch immer nur eine davon verwenden, da sich dadurch das Format der empfangenen Webhooks ändert.

Vergewissern Sie sich, dass die Nachrichten-API als Standard eingestellt ist unter API-Schlüsseldann SMS-Einstellungen von Ihres Kontos.

Set Messages API as the default API for sending SMS messagesSet Messages API as the default API for sending SMS messages Schalten Sie die Einstellung auf Nachrichten APIund drücken Sie dann Änderungen speichern.

2. ngrok ausführen

Sobald die Nachrichten-API installiert ist, wird im nächsten Schritt ngrok ausgeführt.

ngrok ist eine plattformübergreifende Anwendung, die es Entwicklern ermöglicht, einen lokalen Entwicklungsserver mit minimalem Aufwand für das Internet freizugeben. Wir werden es verwenden, um unseren Dienst im Internet zu veröffentlichen. Wenn Sie ngrok noch nicht verwendet haben, finden Sie in einem Blog-Beitrag in dem es genauer erklärt wird. Sobald Sie ngrok eingerichtet haben und eingeloggt sind (auch hier ist das kostenlose Konto akzeptabel), führen Sie den folgenden Befehl aus:

ngrok http 3000

Nachdem ngrok ausgeführt wurde, erhalten Sie eine Weiterleitung URL, die wir später in diesem Artikel als Basis für unsere Webhooks verwenden werden.

3. Erstellen einer SMS-fähigen Anwendung

Um mit der Nachrichten-API zu interagieren, müssen wir eine Vonage-API-Anwendung erstellen, um unsere Anfragen zu authentifizieren.

Betrachten Sie Anwendungen eher als Container und Metadaten, um alle Ihre Daten auf der Vonage-Plattform zu gruppieren. Wir werden eine Anwendung mit dem Vonage API Dashboard erstellen.

Geben Sie einen Namen ein (z. B. "Senden und Empfangen von SMS-Nachrichten") und klicken Sie auf Öffentlichen und privaten Schlüssel generieren. Sie werden aufgefordert, eine Schlüsseldatei auf der Festplatte zu speichern - den privaten Schlüssel. In der Regel ist es ratsam, diese Datei in Ihrem Projektordner aufzubewahren, da Sie sie später noch benötigen werden. Wenn Sie also eine Anwendung erstellen, wird ein öffentlicher Schlüssel generiert und bei Vonage aufbewahrt, und ein privater Schlüssel wird generiert, nicht bei Vonage aufbewahrt und bei der Erstellung der Anwendung an Sie zurückgegeben. Wir werden den privaten Schlüssel später zur Authentifizierung unserer Bibliotheksaufrufe verwenden.

Als nächstes müssen Sie die Option Nachrichten Fähigkeit aktivieren und eine Eingehende URL und eine Status-URL.

Verwenden Sie die ngrok-URL, die Sie im vorherigen Schritt erhalten haben, und füllen Sie jedes Feld aus, indem Sie /webhooks/inbound und /webhooks/statusfür die Eingehende URL und Status-URL.

Wenn eine Nachricht die Nachrichten-APIerreicht, werden die Daten dazu an die Eingehende URL. Wenn Sie eine Nachricht über die API senden, werden die Daten über den Nachrichtenstatus an die Status-URL.

Verknüpfen Sie schließlich eine oder mehrere Ihrer virtuellen Nummern mit dieser Anwendung. Alle Nachrichten, die auf diesen Nummern eingehen, werden an Ihre Eingehende URL.

Create Messages enabled Vonage ApplicationCreate Messages enabled Vonage Application

4. Senden Sie die SMS-Nachricht

Schließlich erstellen wir den Code in Node.js, um SMS-Nachrichten zu versenden.

Erstellen Sie einen neuen Ordner, in dem Sie den Quellcode für die zu erstellende Anwendung speichern möchten. Sobald Sie fertig sind, geben Sie npm init ein, um eine neue Node.js-Anwendung zu initialisieren. Erstellen Sie schließlich eine index.js Datei und initialisieren Sie die zuvor installierte Vonage-Node-Bibliothek.

const { Vonage } = require('@vonage/server-sdk');

const vonage = new Vonage({
  applicationId: VONAGE_APPLICATION_ID,
  privateKey: VONAGE_APPLICATION_PRIVATE_KEY_PATH
});

Als gute Praxis sollten Sie Umgebungsvariablen verwenden verwenden, wenn Sie die folgenden Werte in Ihren Code aufnehmen.

Ersetzen Sie die VONAGE_ANWENDUNG_ID durch die Anwendungs-ID für die von Ihnen erstellte Vonage-Anwendung. Ersetzen Sie die VONAGE_APPLICATION_PRIVATE_KEY_PATH durch den Pfad zum privaten Schlüssel, der automatisch für Sie heruntergeladen wurde. Hinweis: Ich habe meine private.key Datei in das Stammverzeichnis meiner Anwendung kopiert und kann darauf zugreifen, indem ich angebe, dass der privateKey gleich ist mit './private.key'

Um eine SMS-Nachricht mit der Nachrichten-API zu senden, verwenden wir die vonage.messages.send Methode der Vonage Node.js-Bibliothek. Diese Methode akzeptiert Objekte als Parameter, die Informationen über den Empfänger, den Absender und den Inhalt enthalten. Sie variieren für die verschiedenen Kanäle, daher müssen Sie in der API-Dokumentation für die anderen erwähnten Kanäle nachlesen.

Für SMS müssen wir einen Empfänger und Absender angeben. Schließlich akzeptiert das content Objekt akzeptiert eine type von text und eine Textnachricht. Der Callback gibt ein Fehler- und ein Antwortobjekt zurück, und wir protokollieren Meldungen über den Erfolg oder Misserfolg des Vorgangs.

const text = "👋Hello from Vonage";

vonage.messages
  .send({
    text: text,
    message_type: "text",
    to: TO_NUMBER,
    from: FROM_NUMBER,
    channel: "sms",
  })
  .then((resp) => console.log(resp.message_uuid))
  .catch((err) => console.error(err));

Ersetzen Sie TO_NUMBER durch die Zielrufnummer als Zeichenkette und fügen Sie die Ihnen zugewiesene Rufnummer in das Feld FROM_NUMBER Feld ein und führen Sie den Code mit aus:

node index.js

Das war's. Sie haben soeben eine SMS mit Node.js und der Vonage Messages API verschickt!

Sie werden feststellen, dass die Nachrichten-API etwas ausführlicher ist, aber dennoch nur eine Methode benötigt, um zu überprüfen, ob die eingehende Nachricht von Vonage stammt. Fügen Sie das Folgende ein:

const verifyJWT = (req) => {
// Verify if the incoming message came from Vonage
const jwtToken = req.headers.authorization.split(" ")[1];
if(!verifySignature(jwtToken, process.env.VONAGE_API_SIGNATURE_SECRET)) {
console.error("Unauthorized request");
throw new Error('Not a messages API request');
}

console.log('JWT verified');
}

Wie man mit Node.js SMS-Nachrichten empfängt

Wenn eine Vonage-Nummer eine SMS-Nachricht erhält, leitet Vonage diese Nachricht an einen vorgegebenen Webhook weiter. Sie haben die Webhook-URL bereits eingerichtet, als Sie die Messages-aktivierte Vonage-Anwendung erstellt haben: YOUR_NGROK_URL/webhooks/inbound

Um SMS-Nachrichten mit Node.js zu empfangen, führen Sie die folgenden Schritte aus:

  1. Einen Webserver erstellen

  2. Erstellen Sie einen Webhook für die Eingangs-URL

  3. Senden und Empfangen einer Testnachricht

1. Erstellen Sie einen Webserver

Wir erstellen unseren Webserver mit Express erstellen, da dies eines der beliebtesten und am einfachsten zu verwendenden Node.js-Frameworks für diesen Zweck ist. Wir werden uns auch die Request Bodies für die eingehenden URLs ansehen, also müssen wir express von npm installieren.

npm install express --save

Legen wir dafür eine neue Datei an und nennen sie server.js. Diese kann in demselben Ordner liegen, den wir zuvor erstellt haben.

Wir erstellen eine einfache express Anwendung, die den JSON-Parser aus express verwendet und die urlencoded Option auf true. Füllen wir nun die server.js Datei aus, die wir erstellt haben. Wir verwenden Port 3000 für den Server, den wir abhören, und wir haben bereits ngrok auf Port 3000 laufen.

const express = require("express");

const { json, urlencoded } = express;

const app = express();

app.use(json());

app.use(
  urlencoded({
    extended: true,
  })
);

app.listen(3000, () => {
  console.log("Server listening at http://localhost:3000");
});

2. Erstellen Sie einen Webhook für die Inbound-URL

Wir erstellen einen POST-Request-Handler für /webhooks/inbound für die eingehende URL, und wir protokollieren den Anforderungskörper auf der Konsole. Da Vonage über einen Wiederholungsmechanismus verfügt, wird die Nachricht erneut gesendet, wenn die URL nicht mit 200 OKantwortet, also senden wir einen 200 Status.

app.post("/webhooks/inbound", (req, res) => {
  console.log(req.body);

  res.status(200).end();
});

Sie können den Code wie folgt ausführen:

node server.js

3. Senden und Empfangen einer Testnachricht

Senden Sie nun eine SMS-Nachricht von Ihrem Telefon an Ihre Vonage-Nummer. Überprüfen Sie Ihr Endgerät - wenn alles funktioniert, sollten Sie etwa so etwas sehen:

{ to: '447700900000', from: '447700900001', channel: 'sms', message_uuid: 'a580f869-e995-4d76-9b80-a7befe3186a4', timestamp: '2025-06-06T23:02:31Z', usage: { price: '0.0057', currency: 'EUR' }, message_type: 'text', text: "Hello from my personal phone!", sms: { num_messages: '1' } }

Nachbereitung

Und schon haben Sie Ihre erste SMS verschickt! Nachdem Sie nun gelernt haben, wie man mit der Vonage Messages API und Node.js SMS-Nachrichten sendet und empfängt, können Sie dieses Projekt erweitern, um auf eingehende SMS-Nachrichten zu antworten oder komplexere, interaktive Elemente für Ihren aktuellen oder zukünftigen SMS-Bedarf einzubinden.

Haben Sie Fragen oder Anmerkungen? Treten Sie unserer florierenden Entwickler-Community auf Slackoder folgen Sie uns auf X (früher Twitter), oder abonnieren Sie unseren Entwickler-Newsletter. Bleiben Sie mit uns in Verbindung, teilen Sie Ihre Fortschritte mit uns und halten Sie sich über die neuesten Nachrichten, Tipps und Veranstaltungen für Entwickler auf dem Laufenden!

Nochmals vielen Dank fürs Lesen, und wir sehen uns beim nächsten Mal!

Weitere Lektüre

Teilen Sie:

https://a.storyblok.com/f/270183/400x400/7cdff37c0e/michael-crump.png
Michael CrumpManager, Entwicklererfahrungen

Michael Crump arbeitet bei Vonage im Developer Experiences Team und ist Programmierer, YouTuber und häufiger Sprecher zu verschiedenen Themen der .NET- und Cloud-/Kommunikationsentwicklung. Seine Leidenschaft ist es, Entwicklern die Vorteile der jeweiligen Technologien auf einfache Art und Weise näher zu bringen.