1. 基础知识

  • 自己构建对应的工作流,其实思路也是非常简单的,即触发-执行,具体来说就是:事件触发-数据获取-数据处理-执行动作 4步。

2. 抓取天气推送到手机端

  • [自己构建对应的工作流,其实思路也是非常简单的,即触发-执行,具体来说就是:事件触发-数据获取-数据处理-执行动作 4步。](…/案例/自己构建工作流/基础知识/自己构建对应的工作流,其实思路也是非常简单的,即触发-执行,具体来说就是:事件触发-数据获取-数据处理-执行动作 4步。.md)

2.1. 设置触发器

  • 触发事件可以选择按照时间触发,点击右侧的On a schedule
  • 我这里为了快速看到对应的效果,选择了30秒触发一次,实际使用中一般要比这个时间长一点

2.2. 获取数据

  • 这里使用的是用HTTP Request来获取数据

    将其拖下来
    设置对应的参数
参数	值	说明
Authentication	None	不需要认证
Request Method	GET	请求方式
URL	http://t.weather.itboy.net/api/weather/city/101020100	注意这是上海的天气
Response Format	JSON	返回的数据格式
  • 可以点击右上角的执行一下,看一下对应的效果
  • 不出意外的话,可以看到如下界面

2.3. 数据处理

  • 上面虽然可以获取下来上海的天气,但是数据的格式并不符合我们接下来要使用的格式。因此需要使用function节点来处理之前获取到的数据
  • 使用下面的JavaScript代码来对数据进行处理
### // 处理返回的 json 格式的数据并拼接成字符串
// 老苏只处理了当天的数据
 
shidu = items[0].json.data.shidu;
pm25 = items[0].json.data.pm25;
pm10 = items[0].json.data.pm10;
quality = items[0].json.data.quality;
wendu = items[0].json.data.wendu;
ganmao = items[0].json.data.ganmao;
high = items[0].json.data.forecast[0].high.replace(/\s*/g, '');
low = items[0].json.data.forecast[0].low.replace(/\s*/g, '');
fx = items[0].json.data.forecast[0].fx;
fl = items[0].json.data.forecast[0].fl;
type = items[0].json.data.forecast[0].type;
ymd = items[0].json.data.forecast[0].ymd;
week = items[0].json.data.forecast[0].week;
 
var yubao = "天气预报:
今天是" + ymd + "," + week + ",今天天气" + type + "。最" + high + "度,最" + low + "度,风向" + fx + ",风力" + fl + ",空气质量" + quality + ",湿度" + shidu + "," + ganmao;
 
// 调试用的
//console.log(encodeURIComponent(yubao).replace(/'/g,"%27").replace(/"/g,"%22"));
 
// 中文写回到到 json 中
items[0].json.yubao = yubao;
// urlencode 后写回到到 json 中
//items[0].json.yubaoe = encodeURIComponent(yubao).replace(/'/g,"%27").replace(/"/g,"%22");
 
return items;
  • 执行一下可以得到下面的处理结果
  • 需要注意打开Output data才可以

2.4. 执行动作

  • 这里的执行动作就是把上面抓取到的数据推送到微信端上
  • n8n并不直接支持推送数据到微信上,但我们可以使用一些第三方的微信API接口来实现这个数据的推送。比如将数据推送到某一个公众号的服务器上面,由其再发到自己微信客户端的聊天窗口上。
  • 这里依然使用HTTP Request节点来执行这个动作,具体是通过向WxPusher发送GET请求,之后再发送给用户的聊天窗口。
  • [WxPusher (微信推送服务)是一个使用微信公众号作为通道的,实时信息推送平台,你可以通过调用API的方式,把信息推送到微信上,无需安装额外的软件,即可做到信息实时通知。 你可以使用WxPusher来做服务器报警通知、抢课通知、抢票通知,信息更新提示等。](…/…/…/…/…/…/API/微信API/WxPusher/简介/WxPusher (微信推送服务)是一个使用微信公众号作为通道的,实时信息推送平台,你可以通过调用API的方式,把信息推送到微信上,无需安装额外的软件,即可做到信息实时通知。 你可以使用WxPusher来做服务器报警通知、抢课通知、抢票通知,信息更新提示等。.md)
  • 具体的操作流程,参考这篇博客使用WxPusher来向微信端发送自定义的数据 - 知乎

具体参数

### 参数	值	说明
Authentication	None	不需要认证
Request Method	GET	请求方式
URL	http://wxpusher.zjiecode.com/api/send/message/	微信发送地址
Response Format	JSON	返回的数据格式
  • 之后添加参数Query Parameters如下,填好之后,点击一下执行

  • 如果没有报错的话,会显示创建发送任务成功

    手机端应该也可以接收到对应的消息了
  • 刚才的字段只是用来测试,我们还是应该把内容字段设置为之前抓取的天气的内容
    把左侧yubao的数据拖过来,再进行测试

    电脑手机上已经接收到这个天气预报的内容了

  • 在这里插入图片描述
Logo

一站式 AI 云服务平台

更多推荐