OpenReply快速上手:10分钟部署Instagram评论转私聊自动回复(新手友好)
【免费下载链接】openreplyThe open-source Manychat alternative项目地址: https://gitcode.com/gh_mirrors/op/openreply
OpenReply 是一款免费、开源、可自托管的 Instagram 评论转私聊自动回复工具(MIT 协议),常被称作 ManyChat 的开源替代品:当有人在你的帖子或 Reels 下评论你设定的关键词(比如LINK),它会自动通过 Meta 官方 API 给对方发送一条带链接的私聊(DM),还能同时发布一条公开回复。整个流程不爬虫、不模拟浏览器,完全合规,部署在自己的服务器上,没有订阅费和席位限制。
本文带你走完从克隆代码到收到第一条自动私聊的完整路径,新手也能在 10 分钟内跑起来。
OpenReply 如何工作:评论关键词 → 自动私聊
工作流程只有 5 步,理解它比记住配置更重要:
- 有人在你的 Instagram 帖子/Reels 下评论,或给你发 DM、回复你的 Story
- 连接方(自建的 Meta 应用或 Zernio 服务商)把事件推送到你的 OpenReply 实例
- OpenReply 用活动中的营销活动(Campaign)关键词匹配评论文本
- 匹配成功,任务进入发送队列
- 后台 worker 进程发出私聊(如果你开启了公开回复,也会同步发布)
除了核心的评论转私聊,它还提供:
| 功能 | 说明 |
|---|---|
| ⭐ 关键词触发 DM | 每个帖子可设多个关键词,支持整词或模糊匹配 |
| ⭐ 公开回复 | 在私聊之外,同时在评论下回复一条可见内容 |
| 🔗 追踪链接 | 把链接换成可追踪跳转,按营销活动统计点击量和 CTR |
| 🎯 关注门槛(Follow Gate) | 先让对方关注你的账号,才发放链接 |
| 👤 个性化消息 | 消息里用{username}称呼对方用户名 |
| 📥 收件箱 | 在后台直接读 Instagram 私信并回复(Meta 24 小时窗口内) |
| 📊 DM 日志 | 每次发送、跳过、失败都有记录和原因 |
它由两个进程组成:Next.js 网页应用(接收 webhook、提供仪表盘)和常驻 worker(真正执行发送,保证消息能扛住限流与重试)。详细技术栈见 docs/stack.md。
为什么选择 OpenReply
这个项目在开发者社区增长很快,Star 数一路爬升到 2K 级别:
对新手来说,选它的三个理由:
- 免费无上限:MIT 开源协议,无席位费、无套餐限制,成本只有你自己的托管费
- 官方 API 驱动:走 Instagram 官方私有回复通道,不碰密码、不模拟浏览器
- 完全自主可控:活动、队列、日志、收件箱全部跑在你自己的基础设施上
部署前准备:3 样东西就够了
在开始之前,准备好以下清单(对照 docs/setup.md 可查细节):
- 一个Instagram 企业版或创作者账号(个人账号无法连接,可在 Instagram App → 设置 → 账号类型中切换)
- 一个邮箱发送服务(如 Resend),因为 OpenReply 的登录只支持邮箱魔法链接,没有它任何人都无法登录
- 运行环境:本地开发需要 Docker(启动 Postgres + Redis);上云则推荐 Vercel(网页端)+ 常驻主机(worker)
所有配置项都有模板,直接复制 .env.example 修改即可。
本地快速部署:6 条命令跑起来
OpenReply 是自托管项目,没有官方 SaaS 可直接注册,需要部署自己的副本。本地开发最省事:
git clone https://gitcode.com/gh_mirrors/op/openreply cd openreply npm install cp .env.example .env # 然后填入自己的值 docker-compose up -d # 一键启动 Postgres 和 Redis npm run db:generate npm run db:migrate npm run dev # 网页应用,访问 http://localhost:3000再开第二个终端:
npm run worker # 发送私聊的核心进程⚠️两个进程,缺一不可:npm run dev负责接收评论 webhook,npm run worker才真正发出 DM。如果评论进来了却收不到私聊,第一件要检查的就是 worker 是否在运行。数据库结构定义在 prisma/schema.prisma,worker 逻辑在 worker/dm-worker.ts。
.env中几个关键变量:
| 变量 | 填什么 |
|---|---|
NEXTAUTH_URL | 本地填http://localhost:3000(生产环境必须是公开 HTTPS 地址) |
ENCRYPTION_KEY | openssl rand -hex 32生成,加密 Instagram token |
RESEND_API_KEY/EMAIL_FROM | 邮箱登录服务,缺失则无法登录 |
INSTAGRAM_APP_ID等 | 仅直连 Meta 路线需要,见下文 |
连接 Instagram 账号:两条路线二选一
部署完成后,用邮箱魔法链接登录,进入Settings页面连接账号。这里有两条路线:
路线 A:Zernio(省事,付费)
在 Zernio 后台创建一个具有完整读写和收件箱权限的 API key,粘贴到 OpenReply 的 Settings 中,选择你的 Instagram 账号导入即可。OpenReply 会自动注册 webhook,无需自己创建 Meta 应用、无需 App Review。详见 docs/zernio.md。
路线 B:自建 Meta 应用(免费,稍繁琐)
这是新手最容易卡住的地方,完整步骤见 docs/setup.md 的 "The Meta app" 章节,关键动作如下:
- 在 Meta 开发者平台创建Business 类型应用,用例选 "Manage messaging and content on Instagram"
- 收集三个密钥填入
.env:INSTAGRAM_APP_ID、INSTAGRAM_APP_SECRET、FACEBOOK_APP_SECRET - 把你的 Instagram 账号添加为应用的tester,并且一定要在 Instagram App 里接受邀请(这一步 90% 的人漏掉)
- 注册 OAuth 回调地址和 webhook(Callback URL 指向你部署域名的
/api/webhook),订阅comments和messages两个字段 - 发布应用——应用必须处于 Live 状态,真实评论事件才会被投递,这是"配置全对却没反应"的头号原因
📌 从 ManyChat 迁移过来的用户注意:请到 Meta Business Suite → Integrations → Conversation routing,把旧工具从 Partner apps 中移除并让 OpenReply 接管会话,否则 DM 里的按钮点击会失败。
创建第一个自动回复营销活动
账号连接成功后,进入Campaigns页面创建活动:
- 选择一个帖子(帖子选择器展示最近的帖子)
- 设置触发关键词,比如
TEST(可加多个,支持整词匹配) - 编辑私聊内容,支持
{username}个性化称呼 - 可选:添加公开回复文案、一个或两个追踪链接按钮、开启"关注后才发链接"
- 保存,回到 DM Logs 页面盯着它
端到端测试:让第一条 DM 飞起来
- 用另一个 Instagram 账号在选中帖子上评论
TEST(OpenReply 会故意忽略你本人的评论,所以必须换号测试) - 几秒内该账号的私信箱应收到你的自动回复
- 在 OpenReply 的DM Logs页面确认出现一条
SENT记录 - 随时访问
/api/health检查数据库、Redis、队列和 worker 心跳
常见问题速查:
| 症状 | 原因与解决 |
|---|---|
| 评论进来但没收到 DM | worker 没跑,或连不上 Redis;先看/api/health里worker.healthy |
| 登录页一直失败 | RESEND_API_KEY/EMAIL_FROM没配好,魔法链接发不出去 |
| 连接账号报 "Insufficient Developer Role" | tester 邀请没在 Instagram App 里接受 |
| 一切正常但收不到评论事件 | Meta 应用还在 Development 模式,需要发布 |
更多排查思路(WebhookEvent、DmLog、OperationalEvent三张表分别记录投递、发送、崩溃)都写在 docs/setup.md 的 "Test it end to end" 一节。
写在最后
恭喜!你现在拥有了一个完全属于自己、免费且无席位限制的 Instagram 评论转私聊自动回复系统。接下来可以探索:用 docs/setup.md 上云部署、按 docs/stack.md 参考零成本服务组合、通过 META_APP_REVIEW.md 了解让第三方账号接入时的 App Review 流程。项目主文档见 README.md。
【免费下载链接】openreplyThe open-source Manychat alternative项目地址: https://gitcode.com/gh_mirrors/op/openreply
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考