玩转自动化操作神器n8n之(2)使用n8n自动抓取天气预报,并发送到微信上

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的数据拖过来,再进行测试

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

  • 在这里插入图片描述
<think>好的,我现在需要解决用户的问题:如何使用n8n连接企业微信的解决方案或指南。用户之前询问过关于n8n集成企业微信API的文档或教程,现在需要详细的步骤。 首先,我得回忆一下n8n的基本功能。n8n是一个开源的工作流程自动化工具,支持多种应用和服务的集成。企业微信是腾讯的企业通讯工具,提供API供第三方应用集成。用户需要将两者连接起来,可能用于自动化消息发送、数据同步等场景。 接下来,我需要确定企业微信的API接口类型。企业微信的API通常需要获取企业ID、应用密钥等信息,并且需要进行身份验证,比如获取access_token。用户需要在企业微信后台创建应用,获取必要的凭证。 然后,考虑n8n中如何配置这些信息。n8n有HTTP Request节点,可以用来调用REST API。可能需要使用OAuth2或其他认证方式。此外,n8n可能有现成的企业微信节点或第三方开发的节点,但需要检查n8n的节点库。如果官方没有,可能需要自定义节点或使用Webhooks。 查阅n8n官方文档,发现n8n支持自定义HTTP请求,所以用户可以通过HTTP节点调用企业微信的API。例如,发送消息的API是POST请求到特定URL,携带access_token和消息内容。需要先获取access_token,这可能需要先发送一个GET请求到企业微信的token接口,使用企业ID和应用密钥。 接下来需要分步骤指导用户:创建企业微信应用、获取凭证、在n8n中设置HTTP请求节点获取token、再使用该token调用其他API。同时要注意token的有效期,可能需要定期刷新,这可以通过n8n中的调度功能实现。 还需要考虑错误处理和响应处理,比如检查API返回的错误码,确保消息发送成功。可能需要在n8n中添加条件判断节点来处理异常情况。 另外,用户可能需要示例工作流程,比如定时发送消息到企业微信。可以建议用户创建一个工作流,使用Cron节点定时触发,然后依次获取token,构造消息体,发送HTTP请求。 如果用户遇到问题,比如认证失败,需要提醒检查企业ID、应用密钥是否正确,或是否有IP白名单限制。参考企业微信的官方文档和n8n的社区资源可能会有帮助。 最后,确保回答结构清晰,步骤明确,并提供相关参考资料,如企业微信API文档和n8n的HTTP节点文档链接。可能还需要提醒用户关于安全性的问题,比如保护敏感信息如应用密钥,不要暴露在公开的工作流中。</think>### 如何使用n8n连接企业微信 以下是分步指南,基于n8n的HTTP请求节点和企业微信开放API实现集成: --- #### **步骤1:在企业微信后台创建应用** 1. 登录[企业微信管理后台](https://work.weixin.qq.com/) 2. 进入「应用管理」→「自建应用」→「创建应用」 3. 记录以下凭证: - `企业ID`(我的企业→企业信息) - `AgentId`(应用详情页) - `Secret`(应用详情页的"应用密钥")[^1] --- #### **步骤2:在n8n中配置HTTP请求节点** **2.1 获取Access Token** - 企业微信API要求调用时携带有效access_token,通过GET请求获取: ```text https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={企业ID}&corpsecret={Secret} ``` - 在n8n中添加「HTTP Request」节点: - Method: GET - URL: 填入上述URL(替换变量) - 响应解析:JSON格式 - 输出字段:`{{ $json.access_token }}` **2.2 发送消息到企业微信** - 使用企业微信[发送应用消息API](https://developer.work.weixin.qq.com/document/path/90236): ```text POST https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token={access_token} ``` - 在n8n中添加第二个「HTTP Request」节点: - Method: POST - URL: 动态填入上一步获取的access_token(例如`https://qyapi.weixin.qq.com/...?access_token={{ $node["获取Token"].json["access_token"] }}`) - Headers: `Content-Type: application/json` - Body(JSON格式示例): ```json { "touser": "@all", "msgtype": "text", "agentid": "你的AgentId", "text": {"content": "Hello from n8n!"} } ``` --- #### **步骤3:调试与扩展** 1. **参数动态化**:将`企业ID`、`Secret`等敏感信息存储在n8n的「Credentials」中,通过变量引用提升安全性。 2. **错误处理**:添加「IF」节点检查HTTP响应中的`errcode`字段(0表示成功,非0需处理异常)。 3. **定时触发**:结合「Cron」节点实现定时消息推送。 --- #### **示例工作流** ```json // 导出为JSON可导入n8n { "nodes": [ { "parameters": {}, "name": "Start", "type": "n8n-nodes-base.start", "typeVersion": 1 }, { "parameters": { "url": "=https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={{ $credentials.企业ID }}&corpsecret={{ $credentials.Secret }}", "options": {} }, "name": "获取Token", "type": "n8n-nodes-base.httpRequest", "typeVersion": 1 }, { "parameters": { "url": "=https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token={{ $json['access_token'] }}", "options": { "body": { "json": { "touser": "@all", "msgtype": "text", "agentid": "{{ $credentials.AgentId }}", "text": {"content": "测试消息"} } } } }, "name": "发送消息", "type": "n8n-nodes-base.httpRequest", "typeVersion": 1 } ] } ``` --- ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值