
Flows 是一个强大的拖放式自动化引擎,用于创建通信流程。我们最初将其构想为一种无代码解决方案,但我们发现许多用户可以通过为特定用例编写一些代码来实现非常强大的功能。这些代码可以在 Flow Builder 内部,也可以是第三方云函数,如 AWS Lambda 函数或 Google Cloud Functions。
这是一个简单的演示,使用GoogleCloud Functions和Flows在Telegram上发送的图像上进行图像识别。
Flows 和 Beyond
作为Flows的开发者,我经常思考我们的用户是谁,他们为什么使用Flows,以及他们需要什么来实现他们的目标;然后,我们需要实施哪些功能才能最好地服务这些用户。
Flows是一个强大的拖放式自动化引擎,用于创建通信流程。我们最初将其设想为一个无代码解决方案,但我们发现许多用户可以通过为特定用例编写一些代码来实现强大的功能。例如,您可以创建基于多渠道客户互动在Salesforce中自动生成潜在客户和案例的流程。这些代码片段可以在Flows内,或者它们可以是第三方云函数,如AWS Lambda函数或Google Cloud Functions。
一个有趣的用例:图像识别
为了一个简短而有趣的例子,我将向您展示如何实现一个识别热狗的应用程序。我们将在Flows中设置一个流程,接收用户的图像并决定他们是否发送了热狗。
对于我们的许多客户,这种类型的图像识别可以非常强大。想象一下,您经营一个送货服务,并希望自动验证成功的交付,类似于我要展示的内容,您可以使用位置信息、包裹照片,甚至收件人签名,在Flows中创建一个验证流程。
成功的计划
设置 Google Cloud Function
首先,我们需要设置一个云函数。要快速入门,请按照Google的云函数快速启动教程。作为‘触发器’选择HTTP触发器,执行环境:Node.js 10,并在源代码字段中插入代码片段。这是一个简单的代码,它检查请求是否包含JSON代码,并回答是或否。

接下来,您需要部署此函数。要在Google Cloud Platform内部测试它,请按照教程中的步骤操作。
要从浏览器中测试,请转到以下网址,并插入您函数的特定地址:
https://your-function-address.cloudfunctions.net/HotDogOrNot/?url=hello
应返回 {“isHotDog”: true},而地址 https://your-function-address.cloudfunctions.net/HotDogOrNot
应返回 {“isHotDog”: false}。
做得好!您设置了一个google云函数。现在我们需要让我们的云函数更智能。
设置 Google Vision API
为了让它更智能,让我们添加图像识别。为此,我们将使用Google Vision API。要开始,请按照Vision API 入门指南中的步骤 1-4 进行操作。在教程中,您将激活 Vision API 并创建一个服务账号以使用它。
现在返回您创建的云函数。切换“环境变量、网络、超时等”,在“服务账号”文件中选择您刚刚创建的 VisionAPI 服务账号。现在我们可以在我们的函数中访问 Vision API。

现在让我们更改代码。在“Package.json”标签页中插入此代码。它将 Google Vision API 库作为依赖项添加到您的函数中。
在 "Index.js" 标签页中使用以下代码段更新现有代码。

与以前版本相比有什么不同?我们添加了对 VisionAPI 的请求,它返回在图像上发现的“标签”。然后我们按描述过滤这些标签:如果它包含“热狗”并且对该标签的置信度大于 60%。如果过滤后至少剩下 1 个标签,那就意味着我们在图像上发现了热狗。
要了解 Google Vision API 如何工作并查看示例响应,请查看官方Vision API 文档。
之后,部署我们函数的新版本。要从浏览器中测试它,找任何一张热狗的图片并保存它的 URL。现在转到您函数的 URL(输入您的函数的正确地址)https://your-function-address.cloudfunctions.net/HotDogOrNot?url=url_to_image
并用找到的图像的 URL 替换“url_to_image”。如果图像中有热狗,页面将返回{“isHotDog”: true}。
现在让我们将此功能连接到 Flow Builder。
在 Flows 中创建一个流
登录到Bird Dashboard,或者注册一个账户如果你还没有。
如果你是Flows的新手,并且没有设置任何渠道,你需要进入渠道设置页面,并选择设置Telegram渠道。我选择Telegram是因为它易于设置且速度快。

现在你有一个可以在Flows中使用的渠道。去Flows页面,创建一个新的自定义流,并选择“Telegram”频道触发器。

你将被重定向到一个流页面,在那里你应该选择你的Telegram频道作为触发器,在我们的情况下是“Hotdog”。请添加两个步骤:“Fetch variables”和“Reply to channel message”。
在“Fetch variables”步骤中,我们将调用我们的云函数,并将响应检索到变量“isHotDog”中,其将包含“true”或“false”作为GoogleCloud函数的响应。在URL字段中请插入您的函数的URL https://your-function-address.cloudfunctions.net/HotDogOrNot
并填充其他所有字段如“Fetch variable step content”图片中所示。
在“Reply to channel message”步骤中,我们将通过包含是或否响应的消息回复客户。为此,请在“Reply with message”字段中插入以下文本“Hotdog on the image? {{isHotDog}}”。


如果您在构建流时遇到任何困难,可以使用以下代码段:

要测试它,请发送一张图片到您的Telegram机器人。
到目前为止,看起来不错!我们创建了一个小型聊天室机器人,可以检查客户发送的图片。为了使其更美观,让我们添加更多的步骤,如下所示:

如果您在构建流时遇到任何困难,可以使用以下代码段:
结果


虽然这是一个有趣的例子,但我们相信这种功能对我们的用户非常有用。
如果您希望在 Flows 中添加更多这样的内置功能,请写信给我们的支持团队告知我们。