1. 基础知识
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的数据拖过来,再进行测试
电脑手机上已经接收到这个天气预报的内容了