
Teilen Sie:
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.
Wie man eine SMS-Zustellungsbestätigung mit Node.js empfängt
Einführung
Wenn Sie eine Textnachricht an eine Telefonnummer mit Vonage-APIs senden, kann die HTTP-Antwort der API Aufschluss darüber geben, ob die Nachricht erfolgreich gesendet wurde gesendet wurde. Sie sagt Ihnen jedoch nicht, ob die Nachricht zugestellt wurde dem Empfänger zugestellt wurde. Zum Glück gibt es ein Feld in Ihrem Vonage-Entwicklerportal ein Feld, mit dem Sie sehen können, wann sich der Status der Zustellung in Form eines Webhooks ändert.
In diesem Tutorial erfahren Sie, wie Sie mit Node.js herausfinden können, ob die von Ihrer virtuellen Nummer gesendeten SMS-Nachrichten zugestellt worden sind.
Wenn Sie die Anwendung einfach nur ausführen möchten, finden Sie eine voll funktionsfähige Version auf GitHub.
Voraussetzungen
Bevor Sie beginnen, vergewissern Sie sich, dass Sie die folgenden Informationen haben:
Node.js installiert. Node.js ist eine quelloffene, plattformübergreifende JavaScript-Laufzeitumgebung.
ngrok - Ein kostenloser Account ist erforderlich. Mit diesem Tool können Entwickler einen lokalen Entwicklungsserver für das Internet freigeben.
Verwenden von ngrok zum Einrichten eines lokalen Tunnels
ngrok ist eine plattformübergreifende Anwendung, die es Entwicklern ermöglicht, einen lokalen Entwicklungsserver mit minimalem Aufwand dem Internet zugänglich zu machen. Wir werden es verwenden, um unseren Webhook (der in Kürze erstellt wird) dem öffentlichen Internet zur Verfügung zu stellen.
Wenn eine Nachricht zugestellt wird, sendet der Mobilfunkanbieter normalerweise eine Zustellungsbestätigung (DLR) an Vonage zurück, in der der Zustellungsstatus Ihrer Nachricht erläutert wird. Wenn Sie einen Webhook-Endpunkt eingerichtet haben, leitet Vonage diese Zustellungsbestätigung an Ihren Endpunkt weiter.
Wir müssen ngrok einrichten, um einen lokalen Tunnel zu erstellen, damit wir später unseren Node.js-Code ausführen können.
Sobald Sie ngrok eingerichtet haben und eingeloggt sind (auch hier ist der kostenlose Account akzeptabel), führen Sie den folgenden Befehl aus:
ngrok http 5000Nachdem ngrok ausgeführt wurde, erhalten Sie eine Weiterleitung URL, die wir später in diesem Artikel als Basis für unseren Webhook verwenden werden. Meine sieht wie folgt aus:
ngrok.png
Notieren Sie sich die Weiterleitungs-URL, da wir sie im nächsten Schritt verwenden werden.
Einschalten von Zustellungsbelegen (DLR) im Vonage Developer Dashboard
Um diese Funktion nutzen zu können, müssen Sie ein Vonage Developer Account über das Entwicklerportal erstellen. Wenn Sie noch keinen Account haben, erstellen Sie einfach einen, denn wir stellen Ihnen Guthaben für den Einstieg zur Verfügung. Eine Kreditkarte ist nicht erforderlich.
Melden Sie sich bei Ihrem Vonage Account an, und gehen Sie zu Einstellungen. Scrollen Sie nach unten zu SMS-Einstellungenund füllen Sie die Felder Zustellquittungen (DLR) Webhooks mit der ngrok Forwarding URL aus und fügen Sie /Empfangund drücken Sie Speichern.
smssettings.png
Jedes Mal, wenn Sie eine Nachricht von Ihrer virtuellen Nummer aus senden, wird der Webhook-Aufruf für die Zustellungsbestätigung an diese URL gesendet, die den Code auf Ihrem lokalen Rechner ausführt. Lassen Sie uns etwas Code mit Node.js und Express schreiben, um dies zu handhaben!
Node.js-Projekt einrichten
Nachdem wir nun ngrok konfiguriert und einen Lieferschein-Webhook lassen Sie uns schauen, wie wir unsere Node.js-Anwendung konfigurieren sollten.
Beginnen Sie damit, eine Eingabeaufforderung aufzurufen, ein Arbeitsverzeichnis zu erstellen und ein Node.js-Projekt zu initialisieren.
Wir bearbeiten die Anfragen mit Express und verwenden body-parser zum Parsen der eingehenden Anfragebodies. Installieren Sie beides wie folgt:
npm install express body-parser --saveErstellen Sie eine index.js Datei, instanziieren Sie express und hören Sie den Server an Port 5000 ab, da wir ngrok für diesen Port konfiguriert haben.
const app = require('express')();
const bodyParser = require('body-parser');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));Definieren wir den Endpunkt für die Receipt-URL als /receipt.
app
.route('/receipt')
.get(handleDeliveryReceipt)
.post(handleDeliveryReceipt)Definieren Sie dann die handleDeliveryReceipt Funktion wie folgt:
function handleDeliveryReceipt(request, response) {
const params = Object.assign(request.query, request.body)
console.log(params)
response.status(204).send()
}
app.listen(process.env.PORT || 5000)Die Anwendung protokolliert dann die Quittung im Konsolenfenster.
Ausführen der Anwendung
Geben Sie an Ihrer Befehls-/Terminal-Eingabeaufforderung Folgendes ein, um die Anwendung auszuführen:
node index.jsVersuchen Sie zu Testzwecken, Textnachrichten von Ihrer virtuellen Vonage-Nummer an Ihre Mobiltelefonnummer zu senden.
Wenn Ihre Nachricht erfolgreich an Ihr Mobiltelefon gesendet wurde, sollten Sie eine Quittung mit den folgenden Informationen erhalten Status, messageId, Netzcodeusw. Diese Informationen werden über das Terminal oder die Eingabeaufforderung angezeigt.
Unten sehen Sie ein Beispiel dafür, wie meiner aussieht:
{
msisdn: '14259999999',
to: '18339999999',
'network-code': '310260',
messageId: 'c0f9b0a4-f62a-481e-8698-d52231de9047',
price: '0.00869000',
status: 'delivered',
scts: '9992241831',
'err-code': '0',
'api-key': '99999999',
'message-timestamp': '2023-02-24 18:31:15'
}Hinweis: Nicht alle Netze und Länder unterstützen Lieferscheine. Bitte beachten Sie die Dokumentation für weitere Informationen.
Nachbereitung
Nachdem Sie nun gelernt haben, wie Sie mit Node.js herausfinden können, ob die von Ihrer virtuellen Nummer gesendeten SMS-Nachrichten zugestellt wurden, können Sie dieses Projekt erweitern, um die Antwort in einer Cloud-Datenbank zu speichern, oder Sie probieren unsere Messaging API. Versuchen Sie auch, eine Textnachricht zu senden, wenn Ihr Telefon ausgeschaltet ist, um die verschiedenen Zustände des Status Feldes.
Wenn Sie Fragen oder Feedback haben, besuchen Sie den Vonage Entwickler-Slack oder senden Sie mir einen Tweet auf Twitterund ich werde auf Sie zurückkommen. Nochmals vielen Dank fürs Lesen, und wir sehen uns beim nächsten Mal!
Teilen Sie:
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.