OpenViking
基于OpenViking的RAG系统,支持文档查询、知识管理与向量检索。
支持推特与Farcaster的图文自动发布,含多账号、防重复、线程等功能。
openclaw skills install @callmedas69/social-post命令、参数、文件名以原文为准
通过自动字符限制校验和图片上传处理,向 Twitter 和/或 Farcaster 发布内容。
--vary 标志避免 Twitter 的重复内容检测必需凭证(存储在 /home/phan_harry/.openclaw/.env 文件中):
X_CONSUMER_KEY=your_consumer_key
X_CONSUMER_SECRET=your_consumer_secret
X_ACCESS_TOKEN=your_access_token
X_ACCESS_TOKEN_SECRET=your_access_token_secret
X_USERNAME=your_username
X_USER_ID=your_user_id获取凭证步骤:
- 访问 https://developer.twitter.com/en/portal/dashboard
- 提交开发者访问申请
- 等待审核通过(通常需 1-2 天)
- 在开发者门户中设置支付方式(信用卡)
- 无订阅层级 - 仅按实际 API 使用量付费
- 按每次 API 请求收费(发布、读取等)
- 无月度最低消费或固定费用
- 进入开发者门户,创建新应用
- 名称:"Social Post Bot"(或任意名称)
- 权限设置为“读取与写入”
- 消费者密钥与密钥:在“密钥与令牌”标签页中获取
- 访问令牌与密钥:点击“认证令牌”下的“生成”
- 安全保存全部四项凭证
echo "X_CONSUMER_KEY=xxx" >> ~/.openclaw/.env
echo "X_CONSUMER_SECRET=xxx" >> ~/.openclaw/.env
echo "X_ACCESS_TOKEN=xxx" >> ~/.openclaw/.env
echo "X_ACCESS_TOKEN_SECRET=xxx" >> ~/.openclaw/.env测试凭证是否有效:
# 干运行(不会实际发布)
scripts/post.sh --twitter --dry-run "测试消息"可通过自定义前缀添加多个 Twitter 账号的凭证。
示例:添加第二个账号
# 添加带有自定义前缀的凭证(例如 MYACCOUNT_)
echo "MYACCOUNT_API_KEY=xxx" >> ~/.openclaw/.env
echo "MYACCOUNT_API_KEY_SECRET=xxx" >> ~/.openclaw/.env
echo "MYACCOUNT_ACCESS_TOKEN=xxx" >> ~/.openclaw/.env
echo "MYACCOUNT_ACCESS_TOKEN_SECRET=xxx" >> ~/.openclaw/.env使用方式:
# 从默认账号发布(X_*)
scripts/post.sh --twitter "来自默认账号的消息"
# 从自定义账号发布
scripts/post.sh --account myaccount --twitter "来自第二个账号的消息"
# 从自定义账号回复
scripts/reply.sh --account myaccount --twitter TWEET_ID "来自第二个账号的回复"命名规范:
X_CONSUMER_KEY、X_CONSUMER_SECRET 等{PREFIX}_API_KEY、{PREFIX}_API_KEY_SECRET、{PREFIX}_ACCESS_TOKEN、{PREFIX}_ACCESS_TOKEN_SECRET--account 参数中使用小写前缀名必需凭证(存储在 /home/phan_harry/.openclaw/farcaster-credentials.json 文件中):
{
"fid": "your_farcaster_id",
"custodyAddress": "0x...",
"custodyPrivateKey": "0x...",
"signerPublicKey": "0x...",
"signerPrivateKey": "0x...",
"createdAt": "2026-01-01T00:00:00.000Z"
}获取凭证方法:
# 该命令将引导你完成以下操作:
# - 创建钱包
# - 注册 FID
# - 添加签名密钥
# - 自动保存凭证
# 参见:/skills/farcaster-agent/SKILL.md- 若已有 Farcaster 账号
- 导出你的托管钱包私钥
- 导出你的签名私钥
- 手动创建 JSON 文件
# 检查当前余额
scripts/check-balance.sh
# 向 Base 链上的托管地址发送 USDC
# 最低要求:0.1 USDC(约 100 次发布)
# 推荐金额:1-5 USDC(1000-5000 次发布)# 检查凭证是否存在
ls -la ~/.openclaw/farcaster-credentials.json
# 检查钱包余额
scripts/check-balance.sh
# 测试发布(干运行)
scripts/post.sh --farcaster --dry-run "测试消息"安全提示:
.env 文件权限应设为 600(仅所有者可读写)# 回复 Farcaster 动态
scripts/reply.sh --farcaster CAST_HASH "你的回复"
# 带图片的回复
scripts/reply.sh --farcaster 0xabcd1234... --image /path/to/image.jpg "带图片的回复"
# 从 URL 获取动态哈希:farcaster.xyz/~/conversations/[HASH]
scripts/reply.sh --farcaster 0xa1b2c3d4e5f6... "有趣的观点!"# 同时回复(如果你在两个平台上都有对应账号)
scripts/reply.sh --twitter 123456 --farcaster 0xabcd... "精彩的讨论!"post.sh(发布)可用选项--twitter - 仅发布到 Twitter--farcaster - 仅发布到 Farcaster--account <name> - 使用指定的 Twitter 账号(.env 文件中小写前缀)--vary - 自动变化文本内容,避免被识别为重复内容--image <path> - 附加图片--thread - 将长文本自动拆分为编号的系列动态--shorten-links - 缩短链接以节省字符数--truncate - 超出限制时自动截断--dry-run - 预览但不发布-y, --yes - 跳过确认提示(自动确认)reply.sh(回复)可用选项--twitter <tweet_id> - 回复指定 ID 的 Twitter 动态--farcaster <cast_hash> - 回复指定哈希的 Farcaster 动态--account <name> - 使用指定的 Twitter 账号(.env 文件中小写前缀)--image <path> - 在回复中附加图片--shorten-links - 缩短链接以节省字符数--truncate - 超出限制时自动截断--dry-run - 预览但不回复-y, --yes - 跳过确认提示(自动确认)# 快速同时发布(默认账号)
scripts/post.sh "gm! Building onchain 🦞"
# 从特定 Twitter 账号发布
scripts/post.sh --account myaccount --twitter "来自我的第二个账号的消息"
# 自动变化文本以避免重复内容检测
scripts/post.sh --vary --twitter "相同文本,自动添加细微变化"
# 带图片的 Twitter 公告
scripts/post.sh --twitter --image ~/screenshot.png "新功能已上线!🚀"
# 仅发布到 Farcaster
scripts/post.sh --farcaster "刚刚将 credential-manager 发布到 ClawHub!"
# 长文本自动拆分为系列动态(自动编号)
scripts/post.sh --thread "这是一个非常长的公告,超过了字符限制。它将被自动拆分为多个编号的帖子。每部分将依次发布,形成一个系列动态。(1/3), (2/3), (3/3)"
# 缩短链接以节省字符
scripts/post.sh --shorten-links "查看这个精彩项目:https://github.com/very-long-organization-name/very-long-repository-name"
# 结合系列动态与链接缩短
scripts/post.sh --thread --shorten-links "包含多个链接的长文本,将被缩短并自动拆分为系列动态(如需)"
# 两个平台发布,长文本自动截断
scripts/post.sh --truncate "非常长的消息,可能超出限制..."
# 预览但不确认(适用于自动化流程)
scripts/post.sh --yes "CI/CD 自动化发布"# 回复 Twitter 系列动态
scripts/reply.sh --twitter 1234567890123456789 "完全同意这个观点!💯"
# 从特定 Twitter 账号回复
scripts/reply.sh --account myaccount --twitter 1234567890 "从我的第二个账号回复"
# 回复 Farcaster 动态
scripts/reply.sh --farcaster 0xa1b2c3d4e5f6... "精彩见解!你有没有考虑过……?"
# 带缩短链接的回复
scripts/reply.sh --twitter 123456 --shorten-links "更多信息在这里:https://example.com/very-long-article-url"
# 带图片的回复
scripts/reply.sh --twitter 123456 --image ~/chart.png "这是支持该观点的数据"
# 同时回复两个平台(相同消息)
scripts/reply.sh --twitter 123456 --farcaster 0xabc123 "这正是事实 🎯"
# 无需确认的快速回复
scripts/reply.sh --twitter 123456 --yes "快速回应"
# 干运行预览回复内容
scripts/reply.sh --twitter 123456 --dry-run "测试回复预览"脚本现在会在发布前显示草稿预览:
=== 草稿预览 ===
待发布的文本:
─────────────────────────────────────────────
你的消息内容
─────────────────────────────────────────────
目标平台:
• Twitter
• Farcaster
是否继续发布?(y/n):--yes 标志跳过提示--dry-run 进行预览,不执行任何发布操作.env 文件中(X_CONSUMER_KEY、X_CONSUMER_SECRET、X_ACCESS_TOKEN、X_ACCESS_TOKEN_SECRET)/home/phan_harry/.openclaw/farcaster-credentials.jsoncurl、jq官方定价信息: https://developer.twitter.com/#pricing
重要提示: X API 已完全取消订阅层级。当前模型为纯按使用量计费——仅对实际发起的 API 请求进行收费。
每次 Farcaster 动态成本为 0.001 USDC(通过 x402 协议支付):
0xA6a8736f18f383f1cc2d938576933E5eA7Df01A1余额检查:
# 快速检查
scripts/check-balance.sh
# 手动检查
jq -r '.custodyAddress' ~/.openclaw/farcaster-credentials.json
# 在 basescan.org 上查看充值钱包:
向 Base 链上的托管地址发送 USDC。如需跨链,可使用桥接工具。
已收录 2 个 Skill