
Teilen Sie:
Cory Althoff ist Anwalt der Entwickler bei Vonage und Autor von zwei Büchern: Der "Self-Taught Programmer" und "The Self-Taught Computer Scientist". Book Authority bezeichnete "The Self-Taught Programmer" als eines der besten Programmierbücher aller Zeiten, und The Next Web listete es als eines der zehn Bücher, die Ihnen helfen werden, ein besserer Softwareentwickler zu werden. Cory lebt mit seiner Frau und seiner Tochter in der Bay Area.
Erstellen eines Nachrichtenplaners mit Node und Vonage
Lesedauer: 3 Minuten
Hier bei Vonage haben wir viele Artikel darüber geschrieben, wie man eine SMS-Nachricht versendet. Manchmal möchten Sie jedoch eine SMS nicht sofort, sondern erst in der Zukunft versenden. In diesem Tutorial erfahren Sie, wie Sie mit der Vonage Messages API und Node eine SMS-Nachricht für den Versand in der Zukunft planen können.
Sind Sie bereit, loszulegen?
Bauen wir es!
Voraussetzungen
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.
In diesem Lernprogramm wird auch eine virtuelle Telefonnummer verwendet. Um eine zu erwerben, gehen Sie zu Rufnummern > Rufnummern kaufen und suchen Sie nach einer Nummer, die Ihren Anforderungen entspricht.
Für diese Anleitung benötigen Sie einen Account bei Vonage. Sie benötigen außerdem Node, das Sie hier herunterladen können.
Erstes Einrichten
Um loszulegen, müssen Sie zunächst die folgenden Module installieren:
node install express @vonage/server-sdk node-cron @vonage/cli -gExpress ist das Web-Framework, mit dem wir unsere App erstellen werden. Wir werden die Vonage-Bibliothek verwenden, um unsere SMS-Nachricht zu senden, wir werden node-cron verwenden, um einen Cron-Job zu erstellen, um sie in der Zukunft zu senden, und die Vonage CLI, um eine Vonage-App zu erstellen.
Verwenden Sie die Vonage CLI, um den folgenden Befehl mit Ihrem Vonage API-Schlüssel und Geheimnis einzugeben. Sie finden diese Informationen im Developer Dashboard.
vonage config:set --apiKey=VONAGE_API_KEY --apiSecret=VONAGE_API_SECRETAls Nächstes erstellen Sie ein neues Verzeichnis für Ihr Projekt und legen eine CD darin ab:
mkdir my_project
CD my_projectVerwenden Sie nun die CLI, um eine Vonage-Anwendung zu erstellen.
vonage apps:create
✔ Application Name ... new_app
✔ Select App Capabilities > Messages
✔ Create messages webhooks? ... No
✔ Allow use of data for AI training? Read data collection disclosure ... yes
Application created: 34abcd12-ef12-40e3-9c6c-4274b3633761
Sie sollten die Anwendungs-ID speichern: Sie werden sie später noch benötigen.
Jetzt brauchen Sie eine Nummer, damit Sie Anrufe empfangen können. Sie können eine mieten, indem Sie den folgenden Befehl verwenden (ersetzen Sie die Landesvorwahl durch Ihre Vorwahl). Wenn Sie zum Beispiel in Großbritannien sind, ersetzen Sie US durch GB:
vonage numbers:search US
vonage numbers:buy [NUMBER] [COUNTRYCODE]Verknüpfen Sie nun die Nummer mit Ihrer App:
vonage apps:link --number=VONAGE_NUMBER APP_ID Aufbau des Back-Ends
Jetzt können wir mit dem Schreiben des Codes für unsere Anwendung beginnen.
CD in das Verzeichnis, in dem Sie Ihre Vonage-App erstellt haben, und erstellen Sie eine .env Datei.
Fügen Sie die folgenden Informationen hinzu:
FROM=<your_vonage_number>
API_KEY=<your_vonage_API_key>
API_SECRET=<your_vonage_API_secret>
APPLICATION_ID=<your_vonage_application_ID>
PRIVATE_KEY=<your_vonage_private_key_file_name>Erstellen Sie dann eine neue JavaScript-Datei und importieren Sie die Bibliotheken, die Sie für dieses Projekt benötigen.
express = require('express')
const Vonage = require('@vonage/server-sdk')
cron = require('node-cron')
const bodyParser = require('body-parser')
const path = require('path');Erstellen Sie eine Express-App wie diese:
app = express()Fügen Sie nun die Middleware hinzu, die Ihre Anwendung zur Bearbeitung von POST-Anfragen benötigt:
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({
extended: true
}))
app.use(express.static('public'))Fügen Sie diesen Code hinzu, um die Vonage Messages API einzurichten:
const vonage = new Vonage({
apiKey: process.env.API_KEY,
apiSecret: process.env.API_SECRET,
applicationId: process.env.APPLICATION_ID,
privateKey: process.env.PRIVATE_KEY
})Als Nächstes definieren Sie eine Funktion, die index.html ausgibt, wenn Sie die Homepage Ihrer Webanwendung aufrufen.
app.get('/', (req, res) => {
res.sendFile(path.join(__dirname, '/index.html'))
})
Jetzt brauchen wir einen Endpunkt, um unsere SMS-Nachrichten zu versenden.
Fügen Sie den folgenden Code in Ihre Anwendung ein:
app.post('/api/sms', (req, res) => {
res.send(200)
const triggerTime = new Date(req.body['meeting-time'])
let task = cron.schedule('* * * * * *', () => {
if (new Date() > triggerTime) {
vonage.message.sendSms(process.env.FROM, req.body['number'], req.body['message'], (err, responseData) => {
if (err) {
console.log(err);
} else {
if (responseData.messages[0] === "0") {
console.log("Message sent successfully.");
} else {
console.log(`Message failed with error: ${responseData.messages[0]['error-text']}`);
}
}
})
task.stop()
}
});
})
Dieser Code nimmt eine POST-Anfrage mit einer Uhrzeit (wann die SMS gesendet werden soll), der Nummer, an die die Nachricht gesendet werden soll, und der zu sendenden Nachricht entgegen und sendet sie zum geplanten Zeitpunkt an den Empfänger, indem er node-cron um die Nachricht zu planen.
Node-chron akzeptiert zwei Parameter: die Zeit, zu der etwas getan werden soll, und eine Funktion, die den Code dafür enthält, was zu tun ist.
Der obige Code sendet eine SMS-Nachricht unter Verwendung der Messaging API von Vonage und der Daten aus der POST-Anforderung.
Fügen Sie schließlich diese Codezeile am Ende Ihrer Datei hinzu, damit Ihr Server auf Port 5000 lauscht.
app.listen('5000')Sie können nun Ihren Server mit dem Code in dieser Datei starten.
Es passiert aber noch nichts, denn wir müssen unser Frontend erstellen.
Aufbau des Front-Ends
Erstellen Sie eine neue Datei namens index.html und fügen Sie Folgendes hinzu:
<meta charset="UTF-8">
<title>Message Scheduler</title>
<link rel="stylesheet" href="style.css">
<h1>Message Scheduler </h1>
<form action="/api/sms" method="POST">
<label for="time">Start date:</label>
<br>
<input type="datetime-local" id="time" name="meeting-time" value="2022-03-03sT00:00" min="2022-03-03sT00:00" max="2023-06-14T00:00">
<br>
<label for="number">Number:</label>
<br>
<input id="number" name="number">
<br>
<label for="message">Message:</label>
<br>
<input id="message" name="message">
<br>
<input type="submit" value="Submit" id="submit">
</form>Am Anfang Ihrer HTML-Datei importieren Sie die Datei style.css, die CSS enthält, um das Aussehen dieser Seite zu verbessern.
<link rel="stylesheet" href="style.css">Der Rest dieser HTML-Datei erstellt ein Formular, das ein Datum und eine Uhrzeit (wann der Text gesendet werden soll), eine Telefonnummer (an wen er gesendet werden soll) und eine Nachricht (die zu sendende Nachricht) erfasst.
Dieser Code ist einfach, weil wir die Vorteile des in JavaScript eingebauten Kalenders genutzt haben.
Wenn Sie das Formular abschicken, werden alle vom Benutzer erfassten Informationen an das Back-End gesendet, das den Versand der Textnachricht plant.
Wenn Sie die zuvor erstellte JavaScript-Datei ausführen und auf Ihrem lokalen Server unter http://127.0.0.1:5000 navigieren, sollten Sie das von uns erstellte Formular sehen.
Wenn Sie das Formular ausfüllen und auf "Absenden" klicken, sollte Ihre SMS zur geplanten Zeit versendet werden.
Abschließende Überlegungen
Ich hoffe, dieses Tutorial hat Ihnen geholfen, mehr über die Vonage Messages API und die Planung von SMS-Nachrichten zu erfahren.
Folgen Sie uns auf Twitter und treten Sie unserem Slack-Kanal bei, um weitere Informationen zu erhalten.
Vielen Dank fürs Lesen!
Teilen Sie:
Cory Althoff ist Anwalt der Entwickler bei Vonage und Autor von zwei Büchern: Der "Self-Taught Programmer" und "The Self-Taught Computer Scientist". Book Authority bezeichnete "The Self-Taught Programmer" als eines der besten Programmierbücher aller Zeiten, und The Next Web listete es als eines der zehn Bücher, die Ihnen helfen werden, ein besserer Softwareentwickler zu werden. Cory lebt mit seiner Frau und seiner Tochter in der Bay Area.
