自动从静态网站发送Web提要

2020-10-13 20:12:46

几个月前,我写过一篇关于IndieWeb--使这个网站正式化的文章。我试图遵循优秀的Indiewebify.me指南,但我跳过了第2级的第2步,即添加向其他IndieWeb站点发送Web提及的功能。我当时的借口是:

我决定现在跳过这一步,因为使用curl手动发送Web提及相对容易,而且我目前的博客也不是那么频繁!

这个由Remy Sharp构建的可爱的小服务,不要与webention.io混淆,它用于接收传入的Web提及,它使得发送给定页面上所有链接的传出Web提及变得很容易:

这是一项与平台无关的服务,它将检查给定URL中指向其他站点的链接,发现它们是否支持网络提及,然后向目标发送网络提及。

幸运的是,我的博客仍然有一个RSS提要,在这种情况下,文档建议您在每次发布文章时使用IFTTT自动执行此操作。

我最近偶然发现了Actionsflow,这是一个免费的Zapier/IFTTT替代方案,供开发人员基于GitHub操作自动执行工作流。

我必须承认,起初我对Actionsflow文档感到非常困惑,我试图将我的Web提及-发送工作流添加到这个网站的repo中。然而,一旦我意识到这个想法是基于模板创建一个新的回购,事情就变得稍微清楚了一些。

我创建了这个repo,并添加了这个工作流来轮询我的RSS提要,并针对每个新项目向webention.app API发送HTTP POST请求。让我感到惊喜的是,这件事是如此简单:

名称:发送新博客帖子的网页提要:rss:url:http://feeds.jamesmead.org/floehopper-blog配置:logLevel:调试限制:1job:send_webmentions:名称:发送网页提要运行:ubuntu-最新步骤:-name:';发送rss项目的网页提要link';使用:actionsflow/axios@v1 with:url:https://webmention.app/check/method:';post';params:';{";url";:";${{on.rss.outputs.link}}";,";令牌";:";${Secrets.WM_TOKEN}}";}';IS_DEBUG:TRUE。

我花了一段时间才意识到底层的Actionsflow GitHub Action每5分钟运行一次,并轮询我的RSS提要。它似乎使用GitHub Action缓存来记住它以前见过的项目。由于我不经常发布博客帖子,每5分钟一次的投票似乎有点过多,所以我决定将频率降低到每小时一次。

我不确定我是否喜欢Actionsflow的设计,这意味着创建一个新的repo,但如果我有多个工作流,这对我来说可能会更有意义。我想这个回购大致相当于一个IFTTT账户。

在过去的一年中,我使用AWS CDK中的ScheduledFargateTask类为Go Free Range自动执行了一些备份作业,以启动容器并按cron时间表运行脚本。这真的运行得很好,但是将它们移植到Actionsflow中是很有诱惑力的,这样我们就不需要维护Dockerfile和相关的shell脚本之外的任何东西了。

通过良好的文档,webention.app实现得非常好;它是解决范围狭窄问题的优雅解决方案的经典例子。因为我会定期使用API,所以我决定请雷米喝一杯来表示感谢!

我还想找到一种方式来感谢创建webention.io的Aaron Parecki和创建Brid.gy的Ryan Barrett、Kyle Mahan等人。然而,我看不到任何一种方法,事实上,后者明确表示,我们不需要捐款,我保证。