发布于 2026-01-06 0 阅读
0

我是如何利用 Twitter、Twilio 和零代码解决 Jessica 的纽约停车难题的

我是如何利用 Twitter、Twilio 和零代码解决 Jessica 的纽约停车难题的

最近我在dev.to上看了很多很棒的内容(真的,你应该去看看,关注一些标签……那里的社区很棒),然后看到了一篇很棒的文章,标题是“我如何用 Python、Search Tweets API 和 Twilio 解决我的纽约停车难题”,作者是 Twitter 的开发者布道师Jessica Garson。Jessica试图解决纽约市民面临的一个问题:由于“轮换停车规定”,他们每天晚上都不知道该何时挪走停在路边的车。这些规定决定了道路的哪些一侧可以停车,哪些一侧在节假日、活动等情况下不执行。

纽约市停车标志

她深入研究了如何使用 Python、Twitter 搜索 API 和 Twilio 将它们整合在一起。这是一个很有趣的问题,最终会给 Jessica 发送一条短信,告诉她是否需要挪车。读完之后,我立刻想到了猜歌名游戏节目《猜歌名》。

《猜歌名》游戏节目的图片

这个游戏节目的规则是,参赛者要根据歌曲中最少的音符来识别歌曲。所以,这当然和编程完全一样,对吧?不过我当时心想:我可以用更少的精力,而且不用写代码就能解决这个问题!

我立即开始使用Azure 逻辑应用。Azure 逻辑应用是一种……嗯,还是让市场营销人员来告诉我们它是什么吧:

Azure Logic Apps 简化了构建自动化可扩展工作流的方式,这些工作流可以跨云服务和本地系统集成应用程序和数据。 

文章里用了很多专业术语,但简单来说,它是一个工作流/编排平台,允许你在各种输入和输出之间使用“连接器”。逻辑应用可以用代码开发,但大多数都可以不用编写代码,而是使用图形化连接器工具轻松开发。如果你用过/听说过Microsoft Office Flow,那么它底层就是由 Azure 逻辑应用驱动的!读完这篇文章后,我立刻开始动手。我知道 Azure 已经预置了 Twitter 和 Twilio 的连接器,所以我应该可以轻松完成这项工作。  连接器是预定义的逻辑片段,可以帮助我们访问其他应用和平台(在本例中是 Twitter 和 Twilio)上的事件、数据和操作!

杰西卡的问题其实很简单:关注@NYCASP账号的推文,如果推文显示规则“暂停”,就给她发短信提醒。这需要@NYCASP账号的推文内容保持一致,而事实证明他们的推文内容非常一致,所以很容易像杰西卡那样搜索简单的关键词。我们也这样做。 

NYCASP 推特账号截图

首先,我需要一个Azure 帐户,注册 Azure 帐户是免费的,而且有很多服务可以永久免费使用。我还需要一个 Twilio 帐户,就像 Jessica 提到的那样,所以你也需要它来获取你的 Twilio 凭据……请确保你已经有了。有了这两项,我们就可以登录 Azure 门户了……完成这个应用,我们甚至不需要除浏览器之外的任何其他工具!

在门户中,您将在 Azure 中创建一个新资源……搜索“逻辑应用”,它就会显示出来:

Azure门户的屏幕截图

您需要提供一个名称,选择一个资源组计划,以及要将其放置在哪个地理位置。如果您之前从未创建过任何 Azure 资源,资源组是用于存放特定计算资源的容器。为此,我建议您创建一个应用服务资源组,并使用免费试用帐户附带的免费计划。然后,您可以将此资源组用于您的逻辑应用。创建完成后,导航到该资源,您将看到一个欢迎页面,其中包含一个教程视频和一些预配置模板选项。值得庆幸的是,其中一个初始选项是“发布新推文时”,因此让我们使用它来帮助我们入门,因为它默认会添加Twitter 连接器

Azure 门户逻辑应用创建过程的屏幕截图

这会将我们带入 Logic App 设计器,这是一个图形界面,可以帮助我们建立连接。您会立即看到第一个“触发器”,也就是我们的 Twitter 触发器,它会要求您登录才能使用该功能(可以将其理解为授权使用 API)。登录后,点击“继续”,您将看到相关选项。现在,我们基本上是想查找 @NYCASP 在特定时间间隔内发布的新推文。他们的账号发布推文的频率相当稳定,所以我选择了每四小时一次,并使用“from:@NYCASP”作为搜索文本。

Twitter 连接器的屏幕截图

Twitter 部分就到此为止了。目前为止,代码运行正常!现在,每隔 4 小时,程序会检查该账号是否有新推文。接下来,我们来做点什么!在 Jessica 的场景中,我们需要查看推文,并且只有在满足特定条件时才执行相应的操作。所以,让我们在设计器中使用“+”号添加一个新操作。搜索“条件”,你会看到“控制”选项……选择它,然后你会看到“条件”连接器……选择它。“条件”连接器提供了一个简单的决策树:条件是什么,如果条件为真要执行什么操作,如果条件为假要执行什么操作:

条件操作连接器的屏幕截图

在条件区域,点击“选择一个值”后,您将看到上一个触发器的数据,并可以查看所有详细信息!我们滚动查找“推文文本”并选中它。将运算符更改为“包含”,并将值输入为“suspended”。它应该看起来像这样:

条件操作连接器的屏幕截图

现在我们知道这条推文是关于暂停服务的……但杰西卡想知道她明天是否需要挪车。我们再添加一个条件,检查文本中是否包含“明天”。我们按照相同的步骤创建新的条件触发器并将其连接起来。 

目前我们这里存在嵌套条件。我们能否将它们放在同一个条件中呢?或许可以,但我只是在效仿杰西卡的思路。 

它应该看起来像这样:

条件操作连接器的屏幕截图

现在我们知道,如果这两个条件都成立,就需要发送一条短信。点击“真”条件下的“添加操作”按钮,搜索 Twilio 并选择“发送短信”操作。这将添加提供的Twilio 连接器,该连接器提供此功能(以及更多功能)。与 Twitter 类似,您会看到该连接器,选择后需要登录您的帐户以获取凭据。

Twilio 搜索连接器的屏幕截图

完成上述步骤后,您只需输入短信详情即可。对于 Twilio,除非您开通了高级服务,否则“发件人”号码必须是您的账户短信号码。如果您没有开通高级服务就尝试使用其他功能,将会失败。别想太多……我们只是帮您把车开过马路而已,记得吗?输入您要发送的短信内容以及接收短信的手机号码……完成!

Twilio 连接器的屏幕截图

现在,对于假条件,我们仍然需要告诉逻辑应用该做什么。在这种情况下,除非你想做更多操作,否则请再次添加一个操作并选择“系统”,然后查找“终止”——这是一个简单的操作,它基本上只是停止流程并记录一条消息。我在两个假条件下都这样配置了:

终止操作连接器的屏幕截图

好了,我完成了。没有代码。写这篇文章花的时间比我第一次实际运行逻辑应用的时间还长。现在我只能等。等啊等。等啊等。读完杰西卡的文章后,我立刻完成了逻辑应用,想用真实的推文“自然地”测试一下。但是停车规定并没有暂停。我的日志如下:

Azure日志文件的屏幕截图

直到几天前!我的手机震动了一下,我低头一看,砰!

短信截图显示“纽约市替代停车方式明日暂停使用”

一张人们快乐跳舞的动态GIF图片

我想知道杰西卡有没有收到短信!我太高兴了,我甚至都不住在纽约,也不用担心把车挪到街对面!Logic Apps 的日志也很棒,它能以图形化的方式跟踪你的流程,并显示沿途的输入/输出状态:

逻辑应用程序日志截图

所以,无需编写任何代码,只需几个步骤即可完成 Twitter 和 Twilio 的身份验证,我只用了一个浏览器就完成了同样的任务。我赢了吗?谁在乎呢……软件开发不是比赛,而是一种乐趣,我们可以用自己觉得最有效的工具和技术。对我来说,这只是一个直觉,想看看是否真能像我想的那样轻松实现,结果确实如此。所以,没错,我赢了 :-D。

了解更多我用来构建这个程序并让你的自定义逻辑应用程序运行起来的各个组件:

希望这能帮到你!

(本文转载自timheuer.com

文章来源:https://dev.to/azure/how-i-solved-jessica-s-nyc-parking-problem-with-twitter-twilio-and-no-code-2mgg