玩转自动化操作神器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的数据拖过来,再进行测试

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

  • 在这里插入图片描述
### 如何在 n8n 中配置和调用 GPT API 要在 n8n 中集成和使用 GPT API,可以通过创建自定义脚本节点或者利用现有的 HTTP 请求节点来完成。以下是具体方法: #### 配置 OpenAI 的 GPT API 密钥 首先需要获取 OpenAI 提供的 API Key,并将其存储在一个安全的地方以便后续访问。可以在 n8n 的凭证管理器中设置此密钥作为全局变量。 ```javascript // 设置环境变量以保护敏感数据 const apiKey = "{{ $credentials.apiKey }}"; ``` 此处 `$credentials` 是 n8n 内部机制的一部分,允许用户通过界面输入其个人认证信息而无需硬编码[^1]。 #### 使用 HTTP 节点发送请求至 GPT API n8n 支持多种内置节点类型之一即为 **HTTP Request Node** ,它可以直接向外部服务发起 GET 或 POST 请求。对于交互式 AI 接口如 GPT 来说通常采用后者形式提交 JSON 数据包给目标 URL 地址。 - **URL**: `https://api.openai.com/v1/completions` - **Method**: `POST` - **Headers** - 添加头文件字段名为 `"Authorization"` 值设为字符串前缀加上实际 token (`Bearer YOUR_API_KEY`)。 ```json { "Content-Type": "application/json", "Authorization": "Bearer {{apiKey}}" } ``` - **Body (JSON Format)** 下面是一个简单的例子展示如何构造 body 参数传递给服务器端处理逻辑: ```json { "model": "text-davinci-003", "prompt": "你好世界。", "max_tokens": 50, "temperature": 0.7 } ``` 上述代码片段中的每一项都有特定含义[^2]: - model: 所使用的语言模型版本号; - prompt: 用户提供的初始文本种子; - max_tokens: 返回的最大标记数量限制; - temperature: 控制随机性的参数值越低则结果更可预测反之更加多样化。 当以上所有步骤完成后就可以运行工作流程观察输出效果啦! 如果希望进一步简化操作过程也可以考虑开发专属插件扩展原生功能集[^4]。 ```python import openai openai.api_key = 'your_api_key_here' response = openai.Completion.create( engine="text-davinci-003", prompt="hello world.", max_tokens=60 ) print(response.choices[0].text.strip()) ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值