
天天
前面两篇攻略,讲了 X 的配置和发送普通推文:
n8n 配置攻略 14:如何配置 X(原 Twitter)节点
n8n 实操攻略 15:如何自动化运营 X
有朋友问能不能发“长线程”推文,这篇攻略就来操作一下。
这里得先解释下,什么是“长线程”推文。
它是推特上特有的一种帖子,就是发了一个帖子之后,可以不停的给自己追加评论,于是就连起来是一个长线程,比如下面的这种效果:

先看一下工作流的流程图

因为这个工作流,和上一篇的节点类似,所以直接复制上个工作流,粘贴过来,在这个基础上改就行了。

我提前准备好了 Google sheet,格式如图

先获取到 IsSend=0 的数据,执行一下

接下来增加一个 Edit fields 节点,我们筛选出推文的字段

排除这 3 个字段,输出效果是右侧这样

增加一个 Code 节点,处理成 json 格式的数据,参考代码:
// 获取输入的第一个项目的 JSON 数据
const obj = $input.first().json;
// 获取 obj 对象的所有值并转换为数组
const valuesArray = Object.values(obj);
// 将数组映射为包含 index 和 value 的对象数组
return valuesArray.map((v, i) => ({
json: {
index: i,
value: v
}
}));
效果如图:

增加一个循环处理的节点

准备回复推文

这里进入循环的逻辑,拿到上一个推文的 id 之后,直接回复这个 Id 的推文

中间为了防止 API 限制请求,我增加了等待 15s 的节点

最后发送完之后,将 Google sheet 里的对应行,改完已发送

这个工作流最核心的难点,是要正确实现推文的回复链:
1.每条推文必须正确引用前一条的 ID
Twitter API 的 inReplyToStatusId 参数格式要求严格
需要在循环中动态传递和更新推文 ID
2.SplitInBatches 节点的循环机制限制了数据访问
无法直接引用循环外已执行节点的数据
需要使用静态存储 ($getWorkflowStaticData) 来跨循环保存状态
最终的效果如图

以上就实现了自动发长线程推文的工作流。
评论
0暂无评论