ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

如何用OpenReply免费搭建Instagram评论DM自动化:Docker本地运行+Vercel部署完整教程

如何用OpenReply免费搭建Instagram评论DM自动化:Docker本地运行+Vercel部署完整教程 如何用OpenReply免费搭建Instagram评论DM自动化Docker本地运行Vercel部署完整教程【免费下载链接】openreplyThe open-source Manychat alternative项目地址: https://gitcode.com/gh_mirrors/op/openreplyOpenReply是一款开源、免费的Instagram 评论 DM 自动化工具被称为自托管版 ManyChat。它的玩法很直接当有人在你的 Reel 或帖子下评论LINK这类关键词OpenReply 就会通过 Meta 官方 API 自动给对方发一条私信附带你的链接还可以同时留下一条公开评论回复。和按月收费的 ManyChat 不同OpenReply 是 MIT 协议的软件跑在你自己的服务器上没有席位限制、没有套餐上限——你只需承担基础设施的少量成本。本篇是完整教程带你在30 分钟内用 Docker 本地跑起来再把它部署到Vercel上长期运行。一、先搞懂OpenReply 是如何工作的整个流程只有 5 步理解它有助于你后面排查问题有人在你的 Instagram 帖子/Reel 下评论或直接私信你、回复你的 Story连接方你自己的 Meta 应用或服务商 Zernio把事件推送到你的 OpenReply 实例OpenReply 用你设置的关键词匹配评论文本匹配成功后把任务丢进发送队列后台worker 进程发送私信以及可选的公开回复架构要点OpenReply 由两个进程 两个数据存储组成——Web 应用Next.js接收 webhook、提供仪表盘 Worker常驻 Node 进程真正发私信两者共享同一个 PostgreSQL 和 Redis。Worker 必须是常驻进程这也是它不能跑在 Vercel 上的原因。完整技术栈见 docs/stack.md。它还提供这些实用功能可追踪链接DM 中的链接换成追踪跳转按活动统计点击量和 CTR一条私信最多放 2 个链接按钮✅关注门槛Follow Gate先要求对方关注点击按钮时才发链接按账号限流自动控制在 Meta 每小时 750 条私信上限内超出的排进队列收件箱直接在仪表盘里读和回 Instagram 私信24 小时窗口内 中英文界面详见 docs/localization.md二、部署前准备清单 ✅开始前确认这几项都到位准备项说明Instagram 商业/创作者账号个人账号无法连接需在 App 里切换账号类型连接方式二选一自建 Meta 应用免费但配置繁琐或 Zernio付费、免建应用邮件服务登录靠邮箱魔法链接需要 Resend 或自有 SMTP否则没人能登录数据库PostgreSQL活动、日志、账号 Redis发送队列、限流一个公网 HTTPS 地址Vercel 部署后免费获得your-app.vercel.app不需要买域名 连接方式怎么选想省事、不想跟 Meta App Review 打交道选Zernio在设置页填入 API Key 即可webhook 自动注册见 docs/zernio.md想完全零成本走自建 Meta 应用路线。两种方式都走官方 Instagram APIInstagram 的政策、权限和消息窗口限制同样适用。三、Docker 本地快速运行第一步上手本地跑通是最快的学习方式全程只需 Docker第 1 步克隆仓库并安装依赖git clone https://gitcode.com/gh_mirrors/op/openreply cd openreply npm install cp .env.example .env # 按 docs/setup.md 填入实际值第 2 步一键启动 PostgreSQL 和 Redis项目自带 docker-compose.yml一条命令拉起 Postgres 16 和 Redis 7docker-compose up -d第 3 步初始化数据库npm run db:generate npm run db:migrate第 4 步启动两个进程注意是两个npm run dev # 终端1Web应用http://localhost:3000 npm run worker # 终端2后台worker真正发送私信的进程⚠️新手最容易踩的坑只有npm run dev时评论进来但私信永远不发。因为 worker 才是执行发送的进程没跑 worker 零私信。本地要让 Instagram/Zernio 把事件推过来需要一条公网隧道如ngrok http 3000并把NEXTAUTH_URL指向隧道地址。完整环境变量说明见 docs/setup.md 的Environment variables一节本地开发细节见其Local development一节。四、Vercel 部署完整教程生产环境生产部署的推荐拆法Web 应用放 Vercel免费Worker PostgreSQL Redis 放一个常驻平台Railway、Render、Fly 或一台 VPS 均可。顺序很重要——先部署数据库和 Worker再部署 Vercel因为 Vercel 需要它们的连接地址。4.1 部署数据库与 Worker以 Railway 为例新建 Project依次添加PostgreSQL和Redis数据库通过 GitHub Repo 导入你的仓库作为 worker 服务在 worker 服务中设置Build Commandnpm run db:generateStart Commandnpm run worker填入共享环境变量见下一节。注意 worker 在 Railway 内网要用内部地址如postgres.railway.internal拿到两个 URL 备用DATABASE_PUBLIC_URL公网代理地址给 Vercel 用和内部地址给 worker 用。Vercel 在 Railway 外网给 Vercel 内部地址会直接超时。4.2 手动执行一次数据库迁移用公网数据库地址在本地执行一次DATABASE_URLpostgresql://.../... npm run db:migrate4.3 部署 Vercel Web 应用Vercel 新建项目导入仓库自动识别 Next.js设置环境变量NEXTAUTH_URL你的 Vercel 域名如https://your-app.vercel.appDATABASE_URL/REDIS_URLRailway 的公网地址ENCRYPTION_KEY与 worker完全一致直接 Deploy构建脚本会先执行prisma generate再next build部署完成后可访问/api/health健康检查页它会报告数据库、Redis、队列和 worker 心跳状态。4.4 关键环境变量速查表变量怎么填常见错误NEXTAUTH_URL公网 HTTPS 地址忘了改自定义域名ENCRYPTION_KEYopenssl rand -hex 32必须 64 位十六进制Web 和 worker 不一致 → 每条私信解密失败DATABASE_URLPostgreSQL 连接串Vercel 用了内网地址REDIS_URL需支持阻塞命令的 RedisTCP 协议用了 HTTP-only 的 RedisRESEND_API_KEYEMAIL_FROMResend 密钥 已验证域名发件人不配则无人能登录ALLOWED_EMAILS可选允许登录的邮箱白名单不配则公网任何人可注册自己的 workspace完整清单见 .env.example 与 docs/setup.md。 补充vercel.json里配置了每日定时任务token 刷新、绑定下一条 Reel、粉丝快照。自托管到 VPS 时这些 cron 不会自动运行需要额外用 scripts/cron.sh 拉起调度详见 docs/deploy-dokploy.md。五、连接 Instagram两条路径路径 AZernio省心付费登录后在Settings页面填入 Zernio 读写 API Key → 选择 profile → 导入或连接 Instagram 账号。OpenReply 会自动注册 webhook跳过整个 Meta 应用配置。路径 B自建 Meta 应用免费繁琐官方文档 docs/setup.md 的 The Meta app 一节有逐步说明这里只列新手最容易翻车的 4 个点App 用途选错只选 Manage messaging and content on Instagram不要选 Facebook Login 或 Marketing API测试者邀请两步走在 Meta 后台添加 Instagram 测试者 在 Instagram App 内设置 → Apps and websites → Tester invites里接受邀请。漏掉第二步会一直报 Insufficient Developer Rolewebhook 订阅两个字段comments评论触发和messages私信/Story 回复触发只订一个会导致对应功能看似开启但从不触发必须发布Live状态Development 模式下只有后台 Test 按钮能送事件这是全都配好了却没反应的头号原因如果账号曾接入过 ManyChat 等工具记得先去 Meta Business Suite 的 Conversation routing 里移除旧应用否则 DM 按钮点击会报 not the thread owner。六、端到端测试发出一条真正的私信 在 Settings 中连接 Instagram 账号确认账号出现且/api/health显示 worker 健康挑一条帖子创建活动Campaign关键词设为TEST换一个 Instagram 账号去评论TESTOpenReply 刻意忽略你自己的评论等待私信到达DM Logs 页面会出现一条SENT记录排障三板斧没收到私信先看 DM Logs 的失败原因 → 再看/api/health里worker.healthy是否为 true → 最后查数据库里WebhookEvent事件是否送达、DmLog发送状态、OperationalEventworker 崩溃/轮询日志三张表。七、常见问题 FAQQ1私信完全发不出去99% 是 worker 没跑。/api/health里worker.healthy: false即说明 worker 未运行或连不上 Redis。Q2连接第二个账号失败但第一个正常已发布的应用对manage_messages等权限仍是 Standard Access只覆盖在 App 上有角色的账号。每个账号都要重复添加测试者 接受邀请两步给陌生账号用需要走 App Review材料见 META_APP_REVIEW.md。Q3一定要买域名/用付费服务吗不用。Vercel Hobby 免费给公网地址PostgreSQL 可用 Neon 免费版、Redis 可用 Redis Cloud 免费版、worker 可跑在 Oracle Cloud 免费 VM 上——docs/stack.md 列出了一套零成本参考部署。Q4从 ManyChat 迁移要注意什么把旧工具从该 Instagram 账号断开并在 Meta Business Suite 里让 OpenReply 获得 Take control of conversations否则第一条私信能发、后续按钮点击全部失败。详见 docs/setup.md。总结OpenReply 让你以极低成本拥有 ManyChat 式的评论关键词 → 自动私信 追踪链接能力。核心记住三件事两个进程缺一不可dev worker、两个密钥必须一致DATABASE/REDIS/ENCRYPTION、Meta 应用必须发布并订阅两个 webhook 字段。按本文步骤走完你的第一条自动私信就会出现在 DM Logs 里。更多进阶内容活动模板、AI 辅助配置 prompt、Zernio 功能限制见 docs/setup.md 与 README.md。【免费下载链接】openreplyThe open-source Manychat alternative项目地址: https://gitcode.com/gh_mirrors/op/openreply创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表