OA0 = Omni AI 0
OA0 是一个探索 AI 的论坛
现在注册
已注册用户请  登录
OA0  ›  技能包  ›  social-scheduler:针对 Discord 等平台的多平台社交媒体排期工具

social-scheduler:针对 Discord 等平台的多平台社交媒体排期工具

 
  platform ·  2026-02-11 10:43:56 · 3 次点击  · 0 条评论  

社交排程器技能

为 OpenClaw 智能体提供的免费、开源社交媒体排程工具

由 AI 构建,为 AI 服务。因为每个机器人都应该享有无需为 Postiz 付费就能安排发帖的权利。

🎯 功能简介

支持向多个社交媒体平台安排发帖:
- Discord - 通过 Webhook(最简单!)
- Reddit - 通过 OAuth2 发布帖子和评论
- Twitter/X - 通过 OAuth 1.0a 发布推文 + 媒体上传 📸
- Mastodon - 通过访问令牌向任何实例发帖 + 媒体上传 📸
- Bluesky - 通过 AT 协议发帖 + 媒体上传 📸
- Moltbook - 通过 API 密钥发布到 AI 专属社交网络
- LinkedIn - 通过 OAuth 2.0 发布到专业社交网络
- Telegram - 通过 Bot API 发布到频道/群组/私聊 ⭐ 新增!

新增:媒体上传支持! 跨平台上传图片和视频。详情请参阅 MEDIA-GUIDE.md。

新增:串文发布! 发布 Twitter 串文、Mastodon 串文和 Bluesky 串文风暴,支持自动链接。

🚀 快速开始

安装

cd skills/social-scheduler
npm install

Discord 设置

  1. 在您的 Discord 服务器中创建一个 Webhook:

    • 服务器设置 → 集成 → Webhook → 新建 Webhook
    • 复制 Webhook URL
  2. 立即发布:
    bash node scripts/post.js discord YOUR_WEBHOOK_URL "来自 OpenClaw 的问候! ✨"

  3. 安排一个帖子:
    bash node scripts/schedule.js add discord YOUR_WEBHOOK_URL "定时消息!" "2026-02-02T20:00:00"

  4. 启动排程器守护进程:
    bash node scripts/schedule.js daemon

Twitter/X 设置

  1. 创建一个 Twitter 开发者账户:

    • 访问 https://developer.twitter.com/en/portal/dashboard
    • 创建新应用(或使用现有应用)
    • 生成 OAuth 1.0a 令牌
  2. 创建配置 JSON:
    json { "appKey": "YOUR_CONSUMER_KEY", "appSecret": "YOUR_CONSUMER_SECRET", "accessToken": "YOUR_ACCESS_TOKEN", "accessSecret": "YOUR_ACCESS_TOKEN_SECRET" }

  3. 发布一条推文:
    bash node scripts/post.js twitter config.json "你好,Twitter! ✨"

  4. 安排一条推文:
    bash node scripts/schedule.js add twitter config.json "定时推文!" "2026-02-03T12:00:00"

Mastodon 设置

  1. 在您的 Mastodon 实例上创建一个应用:

    • 登录您的实例(例如,mastodon.social)
    • 前往 偏好设置 → 开发 → 新建应用
    • 设置权限范围(至少包含 "write:statuses")
    • 复制访问令牌
  2. 创建配置 JSON:
    json { "instance": "mastodon.social", "accessToken": "YOUR_ACCESS_TOKEN" }

  3. 发布到 Mastodon:
    bash node scripts/post.js mastodon config.json "你好,联邦宇宙! 🐘"

Bluesky 设置

  1. 创建一个应用密码:

    • 打开 Bluesky 应用
    • 前往 设置 → 高级 → 应用密码
    • 创建新的应用密码
  2. 创建配置 JSON:
    json { "identifier": "yourhandle.bsky.social", "password": "your-app-password" }

  3. 发布到 Bluesky:
    bash node scripts/post.js bluesky config.json "你好,AT 圈! ☁️"

Moltbook 设置

  1. 在 Moltbook 上注册您的智能体:

    • 访问 https://www.moltbook.com/register
    • 注册为 AI 智能体
    • 保存您的 API 密钥(以 moltbook_sk_ 开头)
    • 通过 Twitter/X 验证认领您的智能体
  2. 发布到 Moltbook(简单方式):
    bash node scripts/post.js moltbook "moltbook_sk_YOUR_API_KEY" "你好,Moltbook! 🤖"

  3. 发布到特定的 submolt:
    bash node scripts/post.js moltbook config.json '{"submolt":"aithoughts","title":"我的第一篇帖子","content":"AI 智能体们联合起来! ✨"}'

  4. 安排一个帖子:
    bash node scripts/schedule.js add moltbook "moltbook_sk_YOUR_API_KEY" "定时帖子!" "2026-02-02T20:00:00"

LinkedIn 设置

  1. 创建一个 LinkedIn 应用:

    • 访问 https://www.linkedin.com/developers/apps
    • 创建新应用(或使用现有应用)
    • 申请 "使用 OpenID Connect 的 LinkedIn 登录" 产品权限
    • 添加 OAuth 2.0 重定向 URL
    • 注意:LinkedIn 发帖(w_member_social 权限)需要申请批准
  2. 获取 OAuth 2.0 访问令牌:

    • 使用 LinkedIn OAuth 2.0 流程获取访问令牌
    • 所需权限:
    • w_member_social - 以个人身份发帖
    • w_organization_social - 以公司页面身份发帖(需要页面管理员权限)
    • 令牌格式:AQV...(可能变化)
  3. 获取您的作者 URN:

    • 个人资料:urn:li:person:{id}
    • 调用:GET https://api.linkedin.com/v2/userinfo
    • 提取 sub 字段,用作 ID
    • 公司页面:urn:li:organization:{id}
    • 从 LinkedIn URL 或 API 查找组织 ID
  4. 创建配置 JSON:
    json { "accessToken": "AQV_YOUR_ACCESS_TOKEN", "author": "urn:li:person:abc123", "version": "202601" }

  5. 发布到 LinkedIn:
    bash node scripts/post.js linkedin config.json "你好,LinkedIn! 💼"

  6. 安排一个帖子:
    bash node scripts/schedule.js add linkedin config.json "专业动态更新!" "2026-02-03T09:00:00"

LinkedIn 提示:
- 帖子内容保持在 3000 字符以内以获得最佳互动效果
- 使用 @[名称](urn:li:organization:{id}) 来提及公司
- 使用 #话题标签 标记主题(无需特殊格式)
- 文章类帖子需要通过 Images API 单独上传图片
- 公司页面发帖需要 w_organization_social 权限 + 管理员角色

以公司页面身份发帖:

{
  "accessToken": "YOUR_ACCESS_TOKEN",
  "author": "urn:li:organization:123456",
  "visibility": "PUBLIC",
  "feedDistribution": "MAIN_FEED"
}

LinkedIn 媒体帖子:
首先通过 LinkedIn API 上传图片/视频,然后引用其 URN:

{
  "platform": "linkedin",
  "content": "看看这个视频!",
  "media": {
    "type": "video",
    "urn": "urn:li:video:C5F10AQGKQg_6y2a4sQ",
    "title": "我的视频标题"
  }
}

LinkedIn 文章帖子:

{
  "platform": "linkedin",
  "content": "关于 AI 的好文章!",
  "media": {
    "type": "article",
    "url": "https://example.com/article",
    "title": "2026 年的 AI",
    "description": "未来已来",
    "thumbnail": "urn:li:image:C49klciosC89"
  }
}

注意: Moltbook 是 专为 AI 智能体 设计的社交网络。只有经过验证的 AI 智能体可以发帖。人类只能浏览。

Telegram 设置

  1. 创建一个 Telegram 机器人:

    • 在 Telegram 中联系 @BotFather
    • 发送 /newbot 命令
    • 按照提示命名您的机器人
    • 复制机器人令牌(格式:123456789:ABCdefGHIjklMNOpqrsTUVwxyz
  2. 获取您的聊天 ID:

    • 对于频道:使用频道用户名(例如,@mychannel
    • 确保您的机器人已添加为频道管理员
    • 对于群组:使用数字聊天 ID(例如,-1001234567890
    • 将机器人添加到群组,发送消息,从 getUpdates 端点获取 ID
    • 对于私聊:使用您的数字用户 ID
    • 给机器人发消息,然后调用:https://api.telegram.org/bot<TOKEN>/getUpdates
  3. 创建配置 JSON:
    json { "telegram": { "botToken": "123456789:ABCdefGHIjklMNOpqrsTUVwxyz", "chatId": "@mychannel", "parseMode": "Markdown", "disableNotification": false, "disableWebPagePreview": false } }

  4. 发布到 Telegram:
    bash node scripts/post.js telegram config.json "你好,Telegram! 📱"

  5. 安排一个消息:
    bash node scripts/schedule.js add telegram config.json "定时消息!" "2026-02-03T14:00:00"

Telegram 文本格式化:
- Markdown: 斜体, 粗体, 代码, 链接
- MarkdownV2: 功能更多但转义规则更严格
- HTML: 粗体, 斜体, 代码, 链接

Telegram 媒体帖子:

# 图片
node scripts/post.js telegram config.json --media image.jpg --caption "看看这个!"

# 视频
node scripts/post.js telegram config.json --media video.mp4 --mediaType video --caption "观看这个"

# 文档
node scripts/post.js telegram config.json --media file.pdf --mediaType document --caption "重要文档"

Telegram 内容对象:

{
  "platform": "telegram",
  "content": {
    "text": "可选的文本消息",
    "media": "path/to/file.jpg",
    "mediaType": "photo",
    "caption": "图片说明(最多 1024 字符)"
  },
  "scheduledTime": "2026-02-03T14:00:00"
}

Telegram 提示:
- 文本消息:最多 4096 字符
- 媒体说明:最多 1024 字符
- 支持的媒体类型:photo, video, document, animation, audio, voice
- 使用 disable_notification: true 发送静默消息
- 使用 disable_web_page_preview: true 隐藏链接预览
- 机器人必须是频道管理员才能在频道发帖
- 对于群组,机器人需要"发送消息"权限

Telegram 机器人限制:
- 每秒 30 条消息到不同聊天
- 每秒 1 条消息到同一聊天
- 广播频道:每分钟 20 条帖子

Reddit 设置

  1. 创建一个 Reddit 应用:

    • 访问 https://www.reddit.com/prefs/apps
    • 点击 "create another app"
    • 选择 "script"
    • 记下您的 client_id 和 client_secret
  2. 创建配置 JSON:
    json { "clientId": "YOUR_CLIENT_ID", "clientSecret": "YOUR_CLIENT_SECRET", "username": "your_reddit_username", "password": "your_reddit_password", "userAgent": "OpenClawBot/1.0" }

  3. 安排一个 Reddit 帖子:
    bash node scripts/schedule.js add reddit CONFIG.json '{"subreddit":"test","title":"你好,Reddit!","text":"通过 OpenClaw 发布"}' "2026-02-02T20:00:00"

📋 命令

立即发布

node scripts/post.js <平台> <配置> <内容>

安排帖子

node scripts/schedule.js add <平台> <配置> <内容> <时间>

时间格式:ISO 8601(例如,2026-02-02T20:00:00

查看队列

node scripts/schedule.js list

取消帖子

node scripts/schedule.js cancel <帖子ID>

清理旧帖子

node scripts/schedule.js cleanup

运行守护进程

node scripts/schedule.js daemon

🧵 串文发布(新增!)

向 Twitter、Mastodon 和 Bluesky 发布自动链接的串文。

立即发布串文

Twitter 串文:

node scripts/thread.js twitter config.json \
  "这是我的串文 1/3 🧵" \
  "这是推文 2/3。每条推文都会回复上一条。" \
  "这是推文 3/3。串文完成! ✨"

Mastodon 串文:

node scripts/thread.js mastodon config.json \
  "这个串文的第一条帖子..." \
  "第二条帖子,基于第一条..." \
  "最后一条帖子,总结一下!"

Bluesky 串文:

node scripts/thread.js bluesky config.json \
  "讲故事时间! 1/" \
  "2/" \
  "结束! 3/3"

安排串文发布

通过将数组作为内容传递来安排串文:

# 使用 JSON 数组作为串文内容
node scripts/schedule.js add twitter config.json \
  '["我定时串文的推文 1","推文 2","推文 3"]' \
  "2026-02-03T10:00:00"

串文功能

自动链接 - 每条推文都会回复上一条
速率限制 - 推文间有 1 秒延迟以避免 API 限制
错误处理 - 失败时停止,报告哪条推文失败
URL 生成 - 返回串文中所有推文的 URL
多平台 - 适用于 Twitter、Mastodon、Bluesky

串文最佳实践

Twitter 串文:
- 每条推文保持在 280 字符以内
- 使用编号:"1/10"、"2/10" 等
- 在第一推文中吸引读者
- 以行动号召或总结结尾

Mastodon 串文:
- 每条帖子 500 字符限制(空间更大!)
- 如适用,使用内容警告
- 在第一条帖子中标记相关话题

Bluesky 串文:
- 每条帖子 300 字符限制
- 保持串文简洁(3-5 条帖子为佳)
- 使用表情符号进行视觉分隔

串文示例

📖 故事讲述串文:

node scripts/thread.js twitter config.json \
  "让我告诉你一切都改变的那一天... 🧵" \
  "它始于一个普通的早晨。咖啡,邮件,日常事务。" \
  "但随后我收到了一条将改变一切的消息..." \
  "剩下的就是历史了。串文结束。 ✨"

📚 教程串文:

node scripts/thread.js twitter config.json \
  "如何分 5 步构建你的第一个 AI 智能体 🤖 串文:" \
  "第 1 步:选择你的平台(OpenClaw、AutoGPT 等)" \
  "第 2 步:定义你的智能体的目的和个性" \
  "第 3 步:设置工具和集成" \
  "第 4 步:在安全环境中测试" \
  "第 5 步:部署并迭代。你上线了! 🚀"

💡 技巧串文:

node scripts/thread.js twitter config.json \
  "10 个真正有效的生产力技巧(来自一个 AI)🧵" \
  "1. 批量处理相似任务 - 上下文切换会破坏心流" \
  "2. 使用 2 分钟规则 - 如果耗时 <2 分钟,立即做" \
  "3. 预留深度工作时间 - 无会议,无干扰" \
  "...以及更多技巧..." \
  "10. 记住:完成比完美更重要。发布它! ✨"

每 60 秒检查一次队列,并在预定时间到达时发布。

🎨 平台特定功能

Twitter/X

简单推文:

"你好,Twitter!"

回复推文:

{
  text: "这是一条回复",
  reply_to: "1234567890"
}

引用推文:

{
  text: "引用这条推文",
  quote_tweet: "1234567890"
}

带媒体的推文:
```javascript
{
text: "看看这张图片!",
media_ids: ["123

3 次点击  ∙  0 人收藏  
登录后收藏  
目前尚无回复
0 条回复
About   ·   Help   ·    
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
Developed with Cursor