
Flows ist eine leistungsstarke Drag-and-Drop-Automatisierungs-Engine zur Erstellung von Kommunikationsabläufen. Ursprünglich haben wir es als No-Code-Lösung konzipiert, aber wir haben festgestellt, dass viele Benutzer durch das Schreiben von etwas Code für spezifische Anwendungsfälle wirklich leistungsstarkes Verhalten erzielen konnten. Diese Code-Snippets können sich innerhalb des Flow Builder befinden, oder sie können 3rd-Party-Cloud-Funktionen wie AWS Lambda-Funktionen oder Google Cloud Functions sein.
Dies ist eine einfache Demonstration der Verwendung von GoogleCloud Functions und Flows, um Bildkennung auf einem über Telegram gesendeten Bild durchzuführen.
Flows und Beyond
Als Entwickler von Flows frage ich mich oft, wer unsere Nutzer sind, warum sie Flows verwenden und was sie benötigen, um ihre Ziele zu erreichen; und dann, welche Funktionen wir implementieren müssen, um diesen Nutzern bestmöglich zu dienen.
Flows ist eine leistungsstarke Drag-and-Drop-Automatisierungs-Engine zur Erstellung von Kommunikationsflüssen. Ursprünglich haben wir es als No-Code-Lösung konzipiert, aber wir haben festgestellt, dass viele Nutzer sehr leistungsfähiges Verhalten erreichen können, indem sie für spezifische Anwendungsfälle etwas Code schreiben. Diese Code-Schnipsel können innerhalb von Flows sein oder es können 3rd-Party-Cloud-Funktionen wie AWS Lambda-Funktionen oder Google Cloud Functions sein.
Ein interessantes Anwendungsbeispiel: Bilderkennung
Für ein kurzes und lustiges Beispiel zeige ich Ihnen, wie man eine App implementiert, die Hotdogs erkennt. Wir werden einen Flow in Flows einrichten, der Bilder von Nutzern empfängt und entscheidet, ob sie einen Hotdog gesendet haben oder nicht.
Für viele unserer Kunden kann diese Art der Bilderkennung sehr leistungsstark sein. Stellen Sie sich vor, Sie betreiben einen Lieferservice und möchten erfolgreiche Lieferungen automatisch überprüfen. Ähnlich wie das, was ich zeigen werde, könnten Sie Standortdaten, Fotos von Paketen und sogar Empfängerunterschriften verwenden, um einen Verifizierungs-Flow in Flows zu erstellen.
Ein Plan für Erfolg
Einrichten der Google Cloud Function
Zuerst müssen wir eine Cloud-Funktion einrichten. Um schnell zu beginnen, erstellen Sie eine Cloud-Funktion mit diesem Tutorial: https://cloud.google.com/functions/docs/quickstart-console. Wählen Sie als ‚Trigger‘ den HTTP-Trigger, Ausführungsumgebung: Node.js 10, und fügen Sie im Quellcode-Feld das Codestück ein. Es ist ein einfacher Code, der überprüft, ob die Anfrage JSON-Code enthält und mit ja oder nein antwortet.

Als Nächstes müssen Sie diese Funktion bereitstellen. Um sie innerhalb der Google Cloud Platform zu testen, befolgen Sie die Schritte aus dem Tutorial.
Um aus Ihrem Browser zu testen, gehen Sie zur folgenden URL und fügen Sie die spezifische Adresse für Ihre Funktion ein:
https://your-function-address.cloudfunctions.net/HotDogOrNot/?url=hello
sollte {“isHotDog”: true} zurückgeben und die Adresse https://your-function-address.cloudfunctions.net/HotDogOrNot
sollte {“isHotDog”: false} zurückgeben.
Schöne Arbeit! Sie haben eine Google Cloud-Funktion eingerichtet. Jetzt müssen wir unsere Cloud-Funktion intelligenter machen.
Einrichtung der Google Vision API
Um es intelligenter zu machen, fügen wir eine Bilderkennung hinzu. Zu diesem Zweck verwenden wir die Google Vision API. Um zu beginnen, folgen Sie den Schritten 1-4 dieses Tutorials: https://cloud.google.com/vision/docs/quickstart-client-libraries. Im Tutorial aktivieren Sie die Vision API und erstellen ein Dienstkonto, um sie zu nutzen.
Kehren Sie nun zu der von Ihnen erstellten Cloud-Funktion zurück. Schalten Sie „Umgebungsvariablen, Netzwerkeinstellungen, Zeitüberschreitungen und mehr“ um und wählen Sie im Feld „Dienstkonto“ das VisionAPI-Dienstkonto aus, das Sie gerade erstellt haben. Jetzt können wir in unserer Funktion auf die Vision API zugreifen.

Jetzt ändern wir den Code. Fügen Sie in einem „Package.json“-Tab diesen Code ein. Dadurch wird die Google Vision API-Bibliothek als Abhängigkeit zu Ihrer Funktion hinzugefügt.
Aktualisieren Sie im „Index.js“-Tab den vorhandenen Code mit dem folgenden Codefragment.

Was ist der Unterschied zur vorherigen Version? Wir haben eine Anfrage an VisionAPI hinzugefügt, die die ‘labels’ zurückgibt, die es auf dem Bild gefunden hat. Dann filtern wir diese Labels nach Beschreibung: wenn es „hot dog“ enthält und wenn es über 60% Vertrauen in dieses Label hat. Wenn nach dem Filtern mindestens 1 Label übrig bleibt, bedeutet das, dass wir einen Hotdog auf dem Bild gefunden haben.
Um zu verstehen, wie Google VisionAPI funktioniert und wie die Antwort aussieht, lesen Sie deren Dokumentation, https://cloud.google.com/vision/docs
Danach veröffentlichen Sie die neue Version unserer Funktion. Um es von Ihrem Browser aus zu testen, finden Sie ein beliebiges Bild eines Hotdogs und speichern Sie die URL. Gehen Sie nun zur URL Ihrer Funktion (indem Sie die korrekte Adresse für Ihre Funktion einfügen) https://your-function-address.cloudfunctions.net/HotDogOrNot?url=url_to_image
und ersetzen Sie „url_to_image“ durch eine URL zu dem gefundenen Bild. Wenn es im Bild einen Hotdog gibt, wird die Seite {“isHotDog”: true} zurückgeben.
Jetzt verbinden wir diese Funktion mit Flow Builder.
Erstellen eines Flows in Flows
Melden Sie sich im Bird Dashboard an oder registrieren Sie sich für ein Konto, wenn Sie noch keins haben.
Wenn Sie neu bei Flows sind und noch keine Kanäle eingerichtet haben, müssen Sie zur Kanaleinrichtungsseite gehen und wählen, den Telegram-Kanal einzurichten. Ich habe Telegram für diese Demo gewählt, weil es einfach und schnell einzurichten ist.

Jetzt haben Sie einen Kanal, den wir in Flows verwenden können. Gehen Sie zur Flows-Seite, erstellen Sie einen neuen benutzerdefinierten Flow und wählen Sie den „Telegram“-Kanal-Trigger.

Sie werden auf eine Flow-Seite weitergeleitet, auf der Sie Ihren Telegram-Kanal als Auslöser auswählen sollten, in unserem Fall ist es „Hotdog“. Bitte fügen Sie 2 Schritte hinzu: „Variablen abrufen“ und „Nachricht an Kanal antworten“.
Im Schritt „Variablen abrufen“ werden wir unsere Cloud-Funktion aufrufen und die Antwort in die Variable „isHotDog“ abrufen, die „wahr“ oder „falsch“ als Antwort von der GoogleCloud-Funktion enthalten wird. Im URL-Feld bitte die URL zu Ihrer Funktion einfügen https://your-function-address.cloudfunctions.net/HotDogOrNot
und alle anderen Felder wie auf dem Bild „Inhalt des Variablenabrufschritts“ ausfüllen.
Und im Schritt „Nachricht an Kanal antworten“ werden wir dem Kunden mit einer Nachricht antworten, die die Ja- oder Nein-Antwort enthält. Für diese fügen Sie im Feld „Mit Nachricht antworten“ folgenden Text ein: „Hotdog auf dem Bild? {{isHotDog}}“.


Wenn Sie Probleme beim Erstellen des Flows haben, können Sie das folgende Snippet verwenden:

Um es zu testen, senden Sie ein Bild an Ihren Telegram-Bot.
Bis jetzt sieht es cool aus! Wir haben einen kleinen Chatbot erstellt, der Bilder überprüft, die Kunden senden. Um es hübscher zu machen, fügen wir einige weitere Schritte hinzu, wie unten gezeigt:

Wenn Sie Probleme beim Erstellen des Flows haben, können Sie das folgende Snippet verwenden:
Ergebnisse


Während dies ein lustiges Beispiel ist, glauben wir, dass diese Art von Funktionalität für unsere Benutzer sehr nützlich sein kann.
Wenn Sie mehr Funktionen wie diese in Flows integriert haben möchten, schreiben Sie an unser Support-Team, um uns dies mitzuteilen.