
Flows to potężny silnik automatyzacji typu drag-and-drop do tworzenia przepływów komunikacyjnych. Początkowo pomyśleliśmy o nim jako o rozwiązaniu bez kodu, ale odkryliśmy, że wielu użytkowników może uzyskać naprawdę potężne zachowania, pisząc trochę kodu dla konkretnych przypadków użycia. Te fragmenty kodu mogą znajdować się wewnątrz Flow Builder albo być zewnętrznymi funkcjami w chmurze, takimi jak funkcje AWS Lambda lub Google Cloud Functions.
To jest prosta demonstracja używająca GoogleCloud Functions i Flows do rozpoznawania obrazów na zdjęciu wysłanym na Telegramie.
Flows i Beyond
Jako deweloper Flows często zastanawiam się, kim są nasi użytkownicy, dlaczego korzystają z Flows i czego potrzebują, aby osiągnąć swoje cele; a następnie, które funkcje musimy zaimplementować, aby jak najlepiej służyć tym użytkownikom.
Flows to potężny silnik automatyzacji oparty na przeciąganiu i upuszczaniu, służący do tworzenia przepływów komunikacyjnych. Początkowo pomyślany jako rozwiązanie bez kodu, ale odkryliśmy, że wielu użytkowników może osiągnąć bardzo zaawansowane zachowania, pisząc trochę kodu dla konkretnych przypadków użycia. Na przykład, można tworzyć przepływy, które automatycznie generują leady i zgłoszenia w Salesforce na podstawie interakcji klientów w wielu kanałach. Te fragmenty kodu mogą być wewnątrz Flows lub mogą to być zewnętrzne funkcje chmurowe, takie jak funkcje AWS Lambda lub Google Cloud Functions.
Interesujący przypadek użycia: Rozpoznawanie obrazów
Dla krótkiego i zabawnego przykładu, pokażę, jak zaimplementować aplikację, która rozpoznaje hot dogi. Skonfigurujemy przepływ w Flows, który będzie odbierał obrazy od użytkowników i decydował, czy wysłali hot doga, czy nie.
Dla wielu naszych klientów ten rodzaj rozpoznawania obrazów może być bardzo potężny. Wyobraź sobie, że prowadzisz usługę dostaw i chcesz automatycznie weryfikować udane dostawy. Podobnie jak to, co zamierzam pokazać, możesz używać danych lokalizacyjnych, zdjęć paczek, a nawet podpisów odbiorców, aby stworzyć przepływ weryfikacyjny w Flows.
Plan na sukces
Konfigurowanie Google Cloud Function
Najpierw będziemy musieli skonfigurować funkcję w chmurze. Aby szybko rozpocząć, skorzystaj z samouczka szybkiego startu funkcji w chmurze Google. Jako „Trigger” wybierz HTTP trigger, środowisko wykonawcze: Node.js 10, i w polu kodu źródłowego wstaw fragment kodu. To prosty kod, który sprawdza, czy żądanie zawiera kod JSON i odpowiada tak lub nie.

Następnie będziesz musiał wdrożyć tę funkcję. Aby przetestować ją w Google Cloud Platform, postępuj zgodnie z krokami z samouczka.
Aby przetestować z przeglądarki, przejdź do następującego adresu URL, wstawiając konkretne adresy dla swojej funkcji:
https://your-function-address.cloudfunctions.net/HotDogOrNot/?url=hello
powinno zwrócić {“isHotDog”: true}, a adres https://your-function-address.cloudfunctions.net/HotDogOrNot
powinien zwrócić {“isHotDog”: false}.
Dobra robota! Skonfigurowałeś funkcję w chmurze Google. Teraz musimy uczynić naszą funkcję w chmurze mądrzejszą.
Konfigurowanie Google Vision API
Aby uczynić go mądrzejszym, dodajmy rozpoznawanie obrazów. W tym celu użyjemy Google Vision API. Aby rozpocząć, wykonaj kroki 1-4 w Vision API quickstart guide. W samouczku aktywujesz Vision API i utworzysz konto usługi do jego używania.
Teraz wróć do utworzonej przez siebie funkcji w chmurze. Przełącz „Zmienne środowiskowe, sieci, limity czasu i inne” i w pliku „Konto usługi” wybierz konto usługi Vision API, które właśnie utworzyłeś. Teraz możemy uzyskać dostęp do Vision API wewnątrz naszej funkcji.

Teraz zmieńmy kod. Na karcie „Package.json” wstaw ten kod. Dodaje on bibliotekę Google Vision API jako zależność dla Twojej funkcji.
na karcie „Index.js” zaktualizuj istniejący kod, używając poniższego fragmentu kodu.

Jaka jest różnica w porównaniu z poprzednią wersją? Dodaliśmy żądanie do Vision API, które zwraca znalezione „labels” na obrazie. Następnie filtrujemy te etykiety według opisu: jeśli zawiera „hot dog” i jeśli ma pewność większą niż 60% dla tej etykiety. Jeśli po filtrowaniu pozostanie co najmniej jedna etykieta, oznacza to, że znaleźliśmy hot doga na obrazie.
Aby zrozumieć, jak działa Google Vision API i zobaczyć przykładowe odpowiedzi, sprawdź oficjalną dokumentację Vision API.
Po tym wdroż nową wersję naszej funkcji. Aby ją przetestować z poziomu przeglądarki, znajdź dowolny obraz hot doga i zapisz jego URL. Następnie przejdź do adresu URL twojej funkcji (wstawiając poprawny adres dla swojej funkcji) https://your-function-address.cloudfunctions.net/HotDogOrNot?url=url_to_image
i zastąp „url_to_image” URL-em znalezionego obrazu. Jeśli na obrazie znajduje się hot dog, strona zwróci {„isHotDog”: true}.
Teraz połączmy tę funkcję z Flow Builder.
Tworzenie flow w Flows
Zaloguj się do Bird Dashboard lub zarejestruj się, aby uzyskać konto, jeśli jeszcze go nie masz.
Jeśli jesteś nowy w Flows i nie masz żadnych skonfigurowanych kanałów, będziesz musiał przejść do strony konfiguracji kanału i wybrać konfigurację kanału Telegram. Dla tego demo wybrałem Telegram, ponieważ jest łatwy i szybki do skonfigurowania.

Teraz masz kanał, którego możemy użyć w Flows. Przejdź do strony Flows, utwórz nowy niestandardowy przepływ i wybierz wyzwalacz kanału „Telegram”.

Zostaniesz przekierowany na stronę przepływu, gdzie powinieneś wybrać swój kanał Telegram jako wyzwalacz, w naszym przypadku to „Hotdog”. Proszę dodać 2 kroki: „Fetch variables” i „Reply to channel message”.
W kroku „Fetch variables” wywołamy naszą funkcję w chmurze i pobierzemy odpowiedź do zmiennej „isHotDog”, która będzie zawierać odpowiedzi „true” lub „false” uzyskane z funkcji GoogleClound. W polu URL wstaw URL do swojej funkcji https://your-function-address.cloudfunctions.net/HotDogOrNot
i wypełnij wszystkie inne pola zgodnie z obrazem „Fetch variable step content”.
A w kroku „Reply to channel message” odpowiemy klientowi wiadomością zawierającą odpowiedź tak lub nie. W tym celu wstaw w polu "Reply with message" następujący tekst „Hotdog na obrazie? {{isHotDog}}".


Jeśli masz jakiekolwiek problemy z tworzeniem przepływu, możesz użyć poniższego fragmentu:

Aby to przetestować, wyślij obraz do swojego bota Telegram.
Jak dotąd wygląda fajnie! Stworzyliśmy małego chat bota, który sprawdza obrazy przesłane przez klientów. Aby uczynić go ładniejszym, dodajmy kilka więcej kroków, jak pokazano poniżej:

Jeśli masz jakiekolwiek problemy z tworzeniem przepływu, możesz użyć poniższego fragmentu:
Wyniki


Chociaż jest to zabawny przykład, wierzymy, że tego typu funkcja może być bardzo przydatna dla naszych użytkowników.
Jeśli chcesz, aby w Flows było więcej takich funkcji wbudowanych, napisz do naszego zespołu wsparcia, aby dać nam znać.