
Flows è un potente motore di automazione drag-and-drop per la creazione di flussi di comunicazione. Inizialmente lo avevamo concepito come una soluzione no-code, ma abbiamo scoperto che molti utenti potevano ottenere comportamenti davvero potenti scrivendo un po' di codice per casi d'uso specifici. Questi pezzi di codice possono essere all'interno di Flow Builder, oppure possono essere funzioni cloud di terze parti come le funzioni AWS Lambda o Google Cloud Functions.
Questa è una semplice dimostrazione utilizzando GoogleCloud Functions e Flows per eseguire il riconoscimento delle immagini su un'immagine inviata su Telegram.
Flussi e Beyond
Come sviluppatore di Flows, spesso penso a chi sono i nostri utenti, perché usano Flows e cosa devono fare per raggiungere i loro obiettivi; e poi, quali funzionalità dobbiamo implementare per servire al meglio quegli utenti.
Flows è un potente motore di automazione drag-and-drop per creare flussi di comunicazione. Lo abbiamo inizialmente concepito come una soluzione senza codice, ma abbiamo scoperto che molti utenti potevano ottenere comportamenti veramente potenti scrivendo del codice per casi d'uso specifici. Questi pezzi di codice possono essere all'interno di Flows, oppure possono essere funzioni cloud di terze parti come funzioni di AWS Lambda o Google Cloud Functions.
Un caso d'uso interessante: Riconoscimento delle Immagini
Per un esempio breve e divertente, ti mostrerò come implementare un'app che riconosce hot dog. Imposteremo un flusso in Flows, che riceverà immagini dagli utenti e deciderà se hanno inviato un hot dog o no.
Per molti dei nostri clienti, questo tipo di riconoscimento delle immagini può essere molto potente. Immagina di gestire un servizio di consegna e di voler verificare automaticamente consegne avvenute con successo. Simile a quanto sto per mostrare, potresti usare dati di localizzazione, foto di pacchi e persino firme dei destinatari per creare un flusso di verifica in Flows.
Un piano per il successo
Configurazione della Google Cloud Function
Prima di tutto, dobbiamo configurare una funzione cloud. Per iniziare rapidamente, crea una funzione cloud usando questo tutorial: https://cloud.google.com/functions/docs/quickstart-console. Come ‘Trigger’ scegli HTTP trigger, ambiente di esecuzione: Node.js 10, e nel campo del codice sorgente inserisci il frammento di codice. È un codice semplice, che verifica se la richiesta contiene codice JSON e risponde sì o no.

Successivamente, dovrai distribuire questa funzione. Per testarla all'interno di Google Cloud Platform, segui i passaggi del tutorial.
Per testarla dal tuo browser, vai al seguente URL inserendo l'indirizzo specifico della tua funzione:
https://your-function-address.cloudfunctions.net/HotDogOrNot/?url=hello
dovrebbe restituire {“isHotDog”: true} e l'indirizzo https://your-function-address.cloudfunctions.net/HotDogOrNot
dovrebbe restituire {“isHotDog”: false}.
Bravo! Hai configurato una funzione cloud di Google. Ora dobbiamo rendere la nostra funzione cloud più intelligente.
Configurazione di Google Vision API
Per renderlo più intelligente, aggiungiamo il riconoscimento delle immagini. Per questo scopo utilizzeremo il Google Vision API. Per iniziare, segui i passaggi 1-4 di questo tutorial: https://cloud.google.com/vision/docs/quickstart-client-libraries. Nel tutorial attiverai il Vision API e creerai un account di servizio per utilizzarlo.
Ora torna alla funzione cloud che hai creato. Vai su “Environment variables, networking, timeouts and more” e nel file “Service account” scegli l’account di servizio VisionAPI che hai appena creato. Ora possiamo accedere al Vision API all'interno della nostra funzione.

Ora cambiamo il codice. Nella scheda “Package.json”, inserisci questo codice. Aggiungerà la libreria Google Vision API come dipendenza alla tua funzione.
nella scheda "Index.js" aggiorna il codice esistente con il seguente frammento di codice.

Qual è la differenza rispetto alla versione precedente? Abbiamo aggiunto una richiesta a VisionAPI, che restituisce le ‘labels’ che ha trovato sull'immagine. Poi filtriamo queste etichette per descrizione: se contiene "hot dog" e se ha una fiducia superiore al 60% in quell'etichetta. Se c'è almeno 1 etichetta rimasta dopo il filtro, significa che abbiamo trovato un hotdog nell'immagine.
Per capire come funziona Google VisionAPI e come appare la risposta, consulta la loro documentazione, https://cloud.google.com/vision/docs
Dopo di ciò, distribuisci la nuova versione della nostra funzione. Per testarla dal tuo browser, trova qualsiasi immagine di un hotdog e salva l'URL. Ora vai all'URL della tua funzione (inserendo l'indirizzo corretto per la tua funzione) https://your-function-address.cloudfunctions.net/HotDogOrNot?url=url_to_image
e sostituisci “url_to_image” con un URL dell'immagine trovata. Se c'è un hotdog nell'immagine, la pagina restituirà {“isHotDog”: true}.
Ora colleghiamo questa funzione a Flow Builder.
Creating a flow in Flows
Accedi al Bird Dashboard o registrati per un account se non ne hai uno.
Se sei nuovo ai Flows e non hai impostato alcun canale, dovrai andare alla pagina di impostazione del Canale e scegliere di impostare il canale Telegram. Ho scelto Telegram per questa demo perché è facile e veloce da impostare.

Ora hai un canale che possiamo utilizzare in Flows. Vai alla pagina Flows, crea un nuovo flow personalizzato e scegli il trigger del canale “Telegram”.

Sarai reindirizzato a una pagina del flow, dove dovresti scegliere il tuo canale Telegram come trigger, nel nostro caso è “Hotdog”. Si prega di aggiungere 2 passaggi: “Fetch variables” e “Reply to channel message”.
All'interno del passaggio “Fetch variables” chiameremo la nostra funzione cloud e recupereremo la risposta nella variabile “isHotDog” che conterrà “true” o “false” come risposta dalla funzione GoogleClound. Nel campo URL inserisci l'URL della tua funzione https://your-function-address.cloudfunctions.net/HotDogOrNot
e compila tutti gli altri campi come nell'immagine del "Fetch variable step content".
E all'interno del passaggio “Reply to channel message” risponderemo al cliente con un messaggio contenente la risposta sì o no. Per questo inserisci nel campo "Reply with message" il seguente testo "Hotdog nell'immagine? {{isHotDog}}".


Se hai problemi a creare il flow, puoi utilizzare il seguente snippet:

Per testarlo, invia un'immagine al tuo bot Telegram.
Finora, sembra fantastico! Abbiamo creato un piccolo chat bot, che controlla le immagini inviate dai clienti. Per renderlo più bello, aggiungiamo qualche passaggio in più come mostrato sotto:

Se hai problemi a creare il flow, puoi utilizzare il seguente snippet:
Risultati


While this is a fun example, we believe this type of functionality can be very useful for our users.
Se desideri più funzionalità come questa integrate in Flows, scrivi al nostro team di supporto per farcelo sapere.