跳至主要內容

n8n自动推送天气信息到企业微信

fatSheep大约 3 分钟

n8n自动推送天气信息到企业微信

前两天查了一下API自动化平台,发现目前已有的方案是按使用量收费,腾讯互联免费的版本每月仅有500条额度,完全不够用,于是一番冲浪发现了n8n这个开源自动化平台

万丈高楼平地起

第一步当然是启动docker咯
Docker | n8n Docsopen in new window

具体启动教程不再赘述,官网教程中介绍的是docker启动

可以到github手动拉取最新代码,使用docker compose启动容器

下面使用了镜像地址mirror.ghproxy.com

git clone https://mirror.ghproxy.com/github.com/n8n-io/n8n.git

docker-compose文件在目录n8n/docker/compose/withPostgres下,compose下一共有三个目录,按需选择

问题点

启动服务后添加webhook发现默认的地址是localhost+端口号,复制下来测试还需要手动修改,太麻烦了

1712909119542.png

在docker-compose.xml内services.n8n.environment下添加一条:

  • - N8N_HOST= 域名/ip+port

重新启动容器效果就正常了

编写工作流

说是编写工作流,其实就是点点点,先添加cron节点,按照需求编写即可,比如我的触发间隔是每天一次,每天早上10点执行后面的操作

1712909819031.png

获取天气信息

发起http请求获取天气,这里使用到的是开源项目 wttr.in,文档地址:GitHub - chubin/wttr.in: :partly_sunny: The right way to check the weatheropen in new window

根据文档,明确获取某城市天气的url为 wttr.in/城市名 ,效果图:

1712910119660.png

n8n内添加http请求节点,因为上面返回的是图形,我们需要文字信息,因此根据文档,拼接url返回json格式的文档,并且要求返回语言为中文,因此最终url为 https://v2.wttr.in/城市名?format=j1&&lang=zh-cn ,填写好后点击右上角Test step ,效果图:

1712910525098.png

推送到企业微信

新建企业微信机器人,获取webhook地址,根据企业微信群机器人的文档群机器人配置说明 - 文档 - 企业微信开发者中心open in new window编写http请求

1712910747719.png

拖动左边的变量可以把上一步获取到的天气信息放入要发送的json中,傻瓜式操作

填写完成后点击右上角Test step测试步骤,微信群聊收到消息即为成功

简单美化

只有文字太low了,加一张图片,使用必应每日一图,请求地址为cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1open in new window

将请求到的信息拼接进url里即完成,最终效果图:

%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20240412163814.jpg

总结

少数派有一篇文章详细介绍了滴答清单同步Notion的案例,推荐阅读

基于 n8n 的开源自动化:以滴答清单同步 Notion 为例 | 少数派会员 π+Primeopen in new window

如果自己有服务器的话,确实可以做很多有趣的事情,没有服务器也可以使用现成的内网穿透方案,把服务映射出去

对于没有企业微信的小伙伴,可以使用gotify 或者 微信server酱 等进行推送,或是使用wechaty等微信机器人方案编写一个属于自己的微信机器人