https://d226lax1qjow5r.cloudfront.net/blog/blogposts/sms-notifications-google-sheets-nodered-dr/Blog_Group-Notifications_NodeRED_1200x600.png

Versenden von Gruppenbenachrichtigungen mit Google Sheets und Node-RED

Zuletzt aktualisiert am May 24, 2021

Lesedauer: 14 Minuten

Hinweis: Einige der in diesem Artikel beschriebenen Tools oder Methoden werden möglicherweise nicht mehr unterstützt oder sind nicht mehr aktuell. Für aktualisierte Inhalte oder Support, überprüfen Sie unsere neuesten Beiträge oder kontaktieren Sie uns auf dem Vonage Community Slack

Haben Sie schon einmal um 7:59 Uhr einen Anruf erhalten, dass die Schule Ihres Kindes geschlossen ist? Das war praktisch, denn Sie waren nur ein paar Kilometer entfernt - auf dem Heimweg, nachdem Sie Ihr Kind abgesetzt hatten.

Das Ankündigungsverfahren in den meisten Schulen erfolgt heutzutage noch manuell, was in den meisten Fällen funktioniert. Wenn jedoch etwas Unerwartetes passiert, z. B. wenn die Schule eingeschneit ist, versuchen eine Handvoll Leute, Hunderte von Eltern anzurufen. Vielleicht erhalten Sie die Benachrichtigung rechtzeitig, oder Sie gehören zu den Glücklichen, die um 19:59 Uhr in der letzten Gruppe gelandet sind.

In diesem Tutorial werden wir einen Node-RED-Flow erstellen, der programmatisch Benachrichtigungen an eine Liste von Kontakten sendet, indem wir Google Sheets und die Vonage SMS API verwenden.

Mitmachen und es dem Schulleiter vorschlagen? So bleiben Sie an einem Schneetag nicht im Stau stecken.

Voraussetzungen

Bevor Sie beginnen, benötigen Sie einige Dinge:

  • A Node-RED Installation, sei es eine gehostete Version oder auf Ihrem Rechner

  • A Google-Konto

  • Ein Vonage Account

  • Eine Möglichkeit, Ihren Server dem Internet auszusetzen. Das bedeutet entweder, dass Sie eine gehostete Version von Node-RED betreiben oder einen Tunneldienst wie ngrok - Machen Sie sich mit diesem Service vertraut Erste Schritte mit Ngrok in Node-RED Lehrgang

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.

Einrichten des Editors

Sobald Sie Ihren Node-RED-Editor öffnen, stellen Sie sicher, dass Sie die folgenden Pakete installiert haben:

Klicken Sie dazu auf das Hamburger-Menü, wählen Sie Palette verwalten. Prüfen Sie auf bereits installierte Pakete unter Knotenund holen Sie sich neue Pakete aus dem installieren. Registerkarte.

Wenn Sie fertig sind, starten Sie Node-RED neu, und Sie sind startklar!

Konfigurieren Ihres Google-Kontos

Zur Interaktion mit der Google Sheets-APIzu interagieren, müssen Sie einen Service Account verwenden - eine Identität, die eine Instanz verwenden kann, um API-Anfragen in Ihrem Namen auszuführen. Es wird verwendet, um Anwendungen, die auf Ihrer Instanz laufen, für andere Google Cloud-Dienste zu identifizieren.

In diesem Fall muss sich Ihr Flow, der ein Google Sheet liest, zunächst bei der Google Sheets-API authentifizieren.

Sie müssen einen Service Account erstellen und ihm Zugriff auf die Google Sheets API gewähren. Als Nächstes aktualisieren Sie Ihre App, um die Anmeldedaten des Servicekontos an die Google Sheets-API weiterzugeben. Auf diese Weise authentifiziert sich Ihr Flow nahtlos bei der API, ohne dass geheime Schlüssel oder Benutzeranmeldeinformationen eingebettet werden müssen.

Schritt 1: Erstellen eines neuen Service Accounts

Wir beginnen mit der Erstellung eines neuen Projekts auf der Seite für Dienstkonten der Google Cloud Platform. Klicken Sie auf CREATE um zu beginnen.

google service accounts create project

Geben Sie Ihrem Projekt einen Namen, wählen Sie eine Organisation oder lassen Sie den Namen leer, und drücken Sie dann ERSTELLEN.

google service accounts name project

In Kürze wird eine Benachrichtigung angezeigt, dass Ihr Projekt erstellt worden ist.

google service accounts project created

Jetzt, wo Sie ein Projekt haben, fügen wir ihm einen Service Account hinzu!

google create service account

google name service account

Als Nächstes müssen Sie einen Schlüssel erstellen, den Sie für die Authentifizierung mit dem GSheet-Knoten in Ihrem Ablauf verwenden werden. Klicken Sie auf Schlüssel erstellenund wählen Sie dann JSON als Schlüsseltyp. Speichern Sie diese Datei, wenn Sie dazu aufgefordert werden - bewahren Sie sie griffbereit auf, da Sie sie bald brauchen werden, und klicken Sie dann auf Fertig.

google service accounts create key

Schritt 2: Aktivieren Sie Google Sheets API für Ihr Projekt

Wählen Sie aus dem Hamburger-Menü APIs und Dienste -> Dashboardund klicken Sie dann auf die Schaltfläche APIS UND DIENSTE AKTIVIEREN Schaltfläche. Suchen Sie nach der Google Tabellen API in der API-Bibliothek, öffnen Sie sie und klicken Sie auf Aktivieren.

google sheets enable api for project

Schritt 3: Gemeinsame Nutzung von Google Sheets mit Ihrem Service Account

Gehen Sie zum Service-Konten und notieren Sie sich die E-Mail-Adresse, die mit dem soeben erstellten Service Account verbunden ist. Sie müssen diese E-Mail-Adresse verwenden, um Ihre Tabellenkalkulationen mit dem Service Account zu teilen.

google service accouns email

Versenden von Gruppenbenachrichtigungen mit Google Sheets und Node-RED

Tabellenkalkulation erstellen

Falls Sie noch kein Google Sheet haben, können Sie es jetzt erstellen.

Google Sheets verwendet ein Zell-Matrix-System, bei dem jede Spalte mit einem Buchstaben gekennzeichnet ist (beginnend mit A als erste Spalte) und die Zeilen nummeriert sind (1 ist die erste Zeile). Falls Sie das zweite Element der ersten Zeile auswählen möchten, wäre dies B1.

Sie können auch Bereiche von Zellen auswählen, indem Sie die OBERSTE_LINKE_ZELLE:UNTERSTE_RECHTESTE_ZELLE Notation verwenden. Um zum Beispiel das zweite und dritte Element der Zeilen 1-5 auszuwählen, verwenden Sie B1:C5.

Nach dem Erstellen eines Arbeitsblatts sehen Sie ein Blatt1 am unteren Rand des Bildschirms. Das ist das Arbeitsblatt, das Sie gerade haben. Sie können es umbenennen oder weitere Arbeitsblätter zu Ihrem Arbeitsblatt hinzufügen.

Für dieses Tutorial verwende ich ein Arbeitsblatt mit 4 Spalten: Vorname, Nachname, Telefon und E-Mail - Sie benötigen mindestens 2 Datenzeilen, um dem Beispiel folgen zu können.
Stellen Sie sicher, dass Sie eine Telefonnummer hinzufügen, auf die Sie Zugriff haben, damit Sie Ihren Ablauf später testen können.

Sobald Ihr Arbeitsblatt fertig ist, können Sie es für Ihren Service Account freigeben.

google sheets share google sheet

Abrufen der Daten aus Ihrem Google Sheet

Beginnen Sie Ihren Fluss, indem Sie ein GSheet Knoten zu Ihrem Arbeitsbereich hinzu. Konfigurieren Sie diesen Knoten so, dass er die Daten aus Ihrem Google Sheet bezieht, indem Sie die folgenden Felder entsprechend ausfüllen:

PARAMETERS DESCRIPTION
Creds Press the edit button to provide your Service Account key. Remember the JSON file you downloaded earlier? Copy and paste this JSON key in the text field.
Method Select Get Cells from the drop-down menu. This will grab the data from the Google Sheet and pull it into your flow.
SpreadsheetID You can figure out your spreadsheet ID from the URL of your Google Sheet. For example, if the URL is https://docs.google.com/spreadsheets/d/1mmXhj40aeSooxmtku3ma4auLyrHhO8xCSQsklZ1_BU/edit#gid=0, the SpreadsheetID will be the string found in between d/ and /edit: 1mmXhj40aeSooxmtku3ma4auLyrHhO8xCSQsklZ1_BU. Have a look at your spreadsheet URL and find your SpreadSheetID. Then paste this string in the SpreadSheetID field.
Cells Select the cells where your data is located on the spreadsheet. In the example below, this value will be: Sheet1!A2:D30, as the data is found on the worksheet named "Sheet1", in columns A-D on rows 2-30. Note that we're not including the table headers.

Wenn Sie mit der Bearbeitung des GSheet Knoten fertig sind, drücken Sie Fertig.

google sheets node setup

Sehen wir uns nun die Daten an, die wir von der Google Sheets-API erhalten.

Hinzufügen einer einfügen und eine Fehlersuche Knoten zu Ihrem Arbeitsbereich hinzu und verbinden Sie sie mit dem GSheet ein. Klicken Sie auf . Bereitstellenund klicken Sie auf die Schaltfläche einfügen und werfen Sie dann einen Blick auf die Debug-Seitenleiste.

google sheets node

Sie werden feststellen, dass die Antwort in msg.payload ein Array von Arrays ist, wobei jedes dieser Arrays 4 Elemente enthält - Daten im Wert einer Zeile.

Das msg.payload Array aufteilen

Diese Datenstruktur ist für die weitere Verarbeitung nicht ideal, also teilen wir das Array der Arrays in einzelne Arrays auf.

Zum Glück gibt es bereits einen Standardknoten in Ihrer Palette, der Ihnen die Arbeit abnimmt.

Finden Sie die geteilten Knoten unter Sequenz in Ihrer Knotenpalette auf der linken Seite des Bildschirms. Fügen Sie ihn zu Ihrem Arbeitsbereich hinzu, verbinden Sie ihn nach dem GSheet Knoten, gefolgt von einem Fehlersucheund drücken Sie dann Bereitstellen und führen Sie Ihren Ablauf erneut aus.

Werfen Sie einen Blick auf die Debug-Seitenleiste und stellen Sie fest, dass die Antwort als eine Folge von einzelnen Arrays eintrifft. Auf diese Weise können wir sie einzeln verarbeiten, während sie eintreffen.

google sheets sms split node

Verzögerung einstellen

In den meisten Fällen möchten Sie keine Nachrichten mit dieser Geschwindigkeit verschicken, sei es per E-Mail, SMS oder über den Kanal Ihrer Wahl.

Die Vonage SMS API hat zum Beispiel eine Durchsatzgrenze für ausgehende SMS - alle API-Schlüssel sind standardmäßig mit einer Durchsatzbeschränkung von 30 API-Anfragen pro Sekunde eingestellt. Darüber hinaus gibt es auch Einschränkungen beim Versand von bestimmten Numbers, so dass Sie möglicherweise auf 1 SMS pro Sekunde beschränkt sind.

Um sicherzustellen, dass Sie nicht an die Grenzen des Durchsatzes stoßen, ist es eine gute Idee, eine Verzögerung für jedes durchlaufende Array festzulegen msg.payload.

Dazu müssen Sie die Verzögerung Knoten in der Funktion Abschnitt Ihrer Knotenpalette, und verbinden Sie ihn nach der geteilten Knoten. Doppelklicken Sie darauf, um die Knoteneigenschaften zu öffnen, und setzen Sie die Verzögerung auf 1 Sekunde - dies sollte die meisten Anwendungsfälle abdecken, aber Sie können sie nach Bedarf anpassen.

Vorbereiten der Botschaft

Jetzt haben wir alle nötigen Informationen über die Empfänger, also können wir mit der Nachricht weitermachen!

Obwohl Sie allen Empfängern dieselbe Nachricht schicken könnten, ist es immer eine gute Idee, sie ein wenig persönlicher zu gestalten. Schlechte Nachrichten zu erhalten ist schon frustrierend genug, und eine schlechte Benutzererfahrung macht es nicht besser.

Eine kleine Vorlage verleiht Ihrer Nachricht nicht nur eine persönliche Note, sondern lässt sie auch professioneller erscheinen.

Hinzufügen einer Vorlage Knoten nach Verzögerung. Doppelklicken Sie darauf, setzen Sie Eigenschaft auf msg.text und werden Sie kreativ mit Ihrer Nachricht im Textfeld!

Dieses Textfeld unterstützt Mustache-Vorlagenso dass Sie den Empfänger zunächst mit seinem Namen begrüßen können: {{payload.0}}. Dieser Ausdruck verweist auf das erste Element der Datei msg.payload Arrays, also auf den Vornamen des Empfängers.

google sheets sms template node

Wenn Sie mit der Bearbeitung fertig sind, drücken Sie Erledigtund dann Bereitstellen.

Versenden von SMS-Benachrichtigungen

Es gibt viele Kanäle für die Zustellung von Benachrichtigungen, aber bei schlechtem Wetter ist die SMS die beste Wahl, also beginnen wir mit dieser Option.

Zum Senden der SMS-Nachrichten verwenden wir die Vonage SMS API.

Blättern Sie nach unten zum nexmo Abschnitt Ihrer Knotenpalette und fügen Sie sendms zu Ihrem Arbeitsbereich hinzu, verbunden nach der Vorlage Knoten.

Richten Sie diesen Knoten ein, indem Sie auf ihn doppelklicken und die unten stehenden Parameter eingeben. Sie finden API-SCHLÜSSEL und API SECRET durch einen Klick auf die Schaltfläche Bearbeiten neben Vonage-Anmeldeinformationen.

KEY DESCRIPTION
API KEY Your Vonage API key, shown in your account overview.
API SECRET Your Vonage API secret, shown in your account overview.
TO The number you are sending the SMS to, {{msg.payload.2}} in this case.
FROM The number or text shown on a handset when it displays your message. You can also set a custom alphanumeric FROM value if this feature is supported in your country.
TEXT The content of your message. Use {{msg.text}} to reference the templated message you've created earlier.

Vergewissern Sie sich Unicode aktiviert ist, um die Formatierung Ihrer Nachricht beizubehalten, und drücken Sie dann Fertig und Bereitstellen.

google sheets send sms node setup

Führen Sie Ihren Ablauf erneut aus, und sehen Sie, wie Ihre Vorlagenmeldungen in der Debug-Seitenleiste erscheinen.

google sheets templated sms in debug

Lieferscheine

Wenn Sie eine erfolgreiche Anfrage an die SMS API stellen, wird ein Array von Nachrichtenobjekten zurückgegeben. Im Idealfall hat jedes dieser Objekte den Status 0, was bedeutet, dass Ihre Nachricht erfolgreich zum Versand eingeplant wurde. Dies sind die Antwortobjekte, die Sie gerade im Debug-Bereich gesehen haben.

Die Überprüfung dieser Ausgabe ist zwar recht hilfreich, um festzustellen, was die Vonage SMS API getan hat, aber es gibt keine Garantie dafür, dass die Nachricht das Mobiltelefon des Empfängers erreicht hat. Nicht gerade das, was man beim Versenden von Schneetagswarnungen hören möchte, oder?

Sobald die Nachricht ihr Ziel erreicht hat, sendet der Zusteller eine Empfangsbestätigung an Vonage zurück - also keine Panik! Sie müssen lediglich einen Webhook-Endpunkt einrichten, über den Vonage diese Zustellungsbestätigungen weiterleitet.

Verbinden Sie eine http Eingangsknoten mit einem http-Antwort Knoten, sowie mit einem Fehlersuche Knoten, dann füllen Sie die URL Feld mit /receipt im Feld http Eingabeknoten aus.

Als Nächstes müssen Sie der Vonage SMS API mitteilen, wohin sie die Empfangsbestätigungen weiterleiten soll. Gehen Sie zu Ihren API-Einstellungen in den Standard-SMS-Einstellung Abschnitt. Setzen Sie die Standard-Webhook-URL für Zustellungsbestätigungen auf YOUR_URL/receiptein, dann Änderungen speichern.

default sms settings nexmo dashboard

Jetzt können Sie sicher sein, dass Ihre Schneetags-Benachrichtigungen tatsächlich alle auf Ihrer Liste erreicht haben! Verlassen Sie sich jedoch nicht auf mein Wort, sondern gehen Sie auf die Debug-Seitenleiste und lesen Sie Ihre Zustellungsquittungen durch.

google sheets sms event webhook

Wie geht es weiter?

Extra Credit: Schreiben Sie Ihre Lieferquittungen in das Google Sheet

Obwohl die Debug-Seitenleiste Ihnen alle nötigen Einblicke bietet, ist es manchmal einfacher, das Ergebnis zu verstehen, wenn die Daten in einer übersichtlicheren Form dargestellt werden.

In diesem Abschnitt werden wir uns damit beschäftigen, wie Sie Ihre Lieferscheine in dasselbe Arbeitsblatt auf einem anderen Arbeitsblatt (Registerkarte) zurückschreiben können.

Wählen Sie Ihre Daten

Die Zustellungsbelege enthalten die folgenden Eigenschaften der msg.payload Objekts:

PROPERTY DESCRIPTION
msisdn The number the message was sent to.
to Your Vonage number or the SenderID you've set when sending the SMS.
network-code The Mobile Country Code Mobile Network Code (MCCMNC) of the carrier the destination phone number is registered with.
messageId The Vonage ID for this message.
price The cost of this message.
status Will be one of: delivered, expired, failed, rejected, accepted, buffered or unknown, based on where the message is in the delivery process.
scts When the delivery receipt was received from the carrier in YYMMDDHHMM format. For example, 2001011400 is at 2020-01-01 14:00
err-code The status of the request. Will be a non 0 value in case of an error. See the Delivery Receipt documentation for more details.
api-key Your Vonage API key.
message-timestamp The time when Vonage started to push this Delivery Receipt to your webhook endpoint.

Entscheiden Sie, welche dieser Parameter für Sie wichtig sind, und verwenden Sie dann eine ändern Knoten, setzen Sie msg.payload auf ein Array mit den entsprechenden Eigenschaften.

Ich interessiere mich zum Beispiel für den Zeitstempel, die Empfängernummer, den Status, den Fehlercode und die Nachrichten-ID, also werde ich msg.payload auf den folgenden Ausdruck:

[payload.\`message-timestamp\`, payload.msisdn, payload.status, payload.\`err-code\`, payload.messageId]

Verbinden Sie diese ändern Knoten mit dem /Empfang Webhook, dann folgen Sie mit einem GSheet Knoten.

Schreiben Sie Ihre Daten in das Google Sheet

Fügen Sie ein weiteres Arbeitsblatt (Tab) zu Ihrem Google Sheet hinzu und notieren Sie sich dessen Namen - standardmäßig "Sheet2".

Als nächstes gehen Sie zurück zu Ihrem Node-RED-Editor und öffnen das GSheet Knoten-Eigenschaften. Wählen Sie Ihre Anmeldedaten aus dem Feld Anmeldeinformationen Dropdown, wählen Sie Zeile anhängen als Methodeund geben Sie Ihre Tabellenkalkulations-IDein, und geben Sie dann den Zellbereich an, in den die Daten geschrieben werden sollen. In meinem Fall wird dies sein Blatt2!A:Eda ich möchte, dass die Daten über die Spalten A-E auf dem Arbeitsblatt "Sheet2" verteilt werden.

google sheets append row setup

Wenn Sie bereit sind, klicken Sie auf Fertig und Bereitstellenund führen Sie dann Ihren Ablauf erneut aus.

🎉Glückwunsch! Ihre Lieferscheine sind jetzt auf dem zweiten Arbeitsblatt Ihres Arbeitsblatts eingetragen. Gehen Sie zu Ihrem Google Sheet und sehen Sie sie sich an!

google sheets delivery receipts logged

Weitere Hack-Ideen

Sind Sie es leid, Ihren Node-RED-Editor zu öffnen, um Ihren Flow zu starten? Experimentieren Sie mit verschiedenen Möglichkeiten, den Flow zu starten!

Ressourcen

Versuchen Sie ein anderes Tutorial

Teilen Sie:

https://a.storyblok.com/f/270183/372x373/36054b72d0/julia-biro.png
Julia BiroAdvokat für Entwickler

Julia hat es sich zur Aufgabe gemacht, andere Entwickler durch die Erstellung von Tutorials, Anleitungen und praktischen Ressourcen zu unterstützen. Mit ihrem Hintergrund in den Bereichen Öffentlichkeitsarbeit und Bildung möchte sie Technologien zugänglicher machen und die Erfahrung von Entwicklern insgesamt verbessern. Man kann sie oft bei lokalen Veranstaltungen antreffen.