如何用treg接入Instagram OAuth?直接登录与Facebook Page工具配置指南
【免费下载链接】tregOpenRouter for agent tools. Join community here: https://discord.gg/6mQYYfFMAn项目地址: https://gitcode.com/GitHub_Trending/treg/treg
如果你想在 AI Agent 中安全地调用自己的 Instagram 账号数据,treg(OpenRouter for agent tools)提供了完整的 Instagram OAuth 接入方案。treg 是一个面向 Agent 的工具注册中心与 API 代理,本文带你走通两条授权路线:Instagram 直接登录(instagram-login)与Facebook Page 工具(facebook-page),从账号准备、Dashboard 一键授权到 CLI 命令行连接,全部讲清楚。
为什么用 treg 连接 Instagram,而不是自己申请 API Key?
自己对接 Instagram Graph API 意味着你要:创建 Meta App、申请 Advanced Access、管理 access token 的过期与刷新、处理限流……而 treg 把这些全部托管了:
- 凭据永不离开服务器:OAuth token 加密存储在服务端,treg 自动刷新,你的 Agent 拿到的只是调用结果;
- 32 个已验证的 Instagram 端点:资料、帖子、评论、Insights 数据、私信、发帖、标签搜索等,按端点 ID 直接调用;
- 私有数据,爬虫拿不到:比如你账号的真实触达(reach)、收藏数(saves)、主页浏览量,只有官方 OAuth 授权才能读到;
- 团队共享:连接一次,团队里所有成员和 Agent 都能调用。
完整的端点定义见 src/treg/catalog/instagram.yaml 与 src/treg/catalog/instagram.extended.yaml,每个端点都声明了路径、参数与权限要求。
两条授权路线怎么选:直接登录 vs Facebook Page 工具
treg 把instagram设计为一个目录供应商下的两种独立授权(grant),二选一或同时拥有:
| 对比项 | 🟢 Instagram 直接登录(instagram-login) | 🔵 Facebook Page 工具(facebook-page) |
|---|---|---|
| 走的接口 | Instagram 自己的域名graph.instagram.com | graph.facebook.com |
| 账号要求 | Instagram企业版(Business)或创作者(Creator)账号即可 | 企业版账号必须已关联一个 Facebook 主页 |
| 支持的端点 | 21 个共享端点 | 21 个共享端点 +11 个 Page 专属端点 |
| 独占能力 | 无需 Facebook 主页,个人创作者友好 | 标签搜索(hashtag search)、商业发现(business discovery)、@提及查询、产品申诉等 |
| 私信权限 | manage能力直接包含 | 需要额外勾选page-messages能力 |
💡 简单判断:没有 Facebook 主页→ 走直接登录;有主页且想做标签/竞品类数据→ 走 Facebook Page 工具。两者互不替代——直接登录的授权无法调用 Page 专属端点。
授权契约的完整说明(包括权限映射与端点矩阵)在 docs/context/architecture/instagram-oauth.md。
准备工作:Meta 侧的 4 项检查
连接之前,请确认以下条件(一次配置,长期有效):
- Instagram 账号已转为企业版或创作者账号(Settings → Account type),否则授权回调后无法识别账号;
- 走 Facebook Page 路线的话,在 Instagram 后台把企业账号与你的 Facebook 主页完成关联;
- 回调地址已登记:在 Meta App Dashboard 中,把 treg 的生产回调地址(
oauth/callback路径)加入 Instagram 的 Business login 设置;本地调试时临时替换为你自己的隧道地址; - 应用密钥已配置:Instagram 专用的 App ID / Secret 分别写入服务端环境变量
TREG_INSTAGRAM_CLIENT_ID与TREG_INSTAGRAM_CLIENT_SECRET(切勿写进代码仓库);Page 路线复用的 Meta 应用凭据则为TREG_META_CLIENT_ID/TREG_META_CLIENT_SECRET。
⚠️ 如果让用户连接应用所有者不管理的账号,还需要在 Meta 侧申请相关权限的 Advanced Access。官方要求的权限清单(instagram_business_basic、instagram_business_manage_insights、instagram_business_content_publish等)同样记录在架构文档 docs/context/architecture/instagram-oauth.md。
三步完成连接:Dashboard 浏览器授权(推荐新手)
登录 treg 后台后,整个 OAuth 流程在浏览器内完成,无需任何本地配置:
- 进入供应商连接页:在 Marketplace / Connections 视图找到 Instagram,点击Add account(添加账号);
- 选择授权方式:页面会展示两个单选项——Instagram 直接登录 或 Facebook Page 工具。选择后会出现能力选择器:直接登录可选读取 / 发帖 / 管理(
manage);Page 路线可选核心工具(page-tools)或加上私信(page-messages); - 浏览器授权:跳转 Meta 同意页 → 登录后选择要授权的账号 → 自动回到 treg。回调完成后,treg 会把短期 token 换成可自动刷新的长期 token,并把你授权的专业账号存为所选资源,直接生成可用工具。
连接后建议做一次健康检查:treg health --run会重新校验 OAuth 凭证状态与到期时间。
如果账号识别失败,连接记录会显示health=setup_required,这通常意味着账号还不是企业版/创作者账号——切换账号类型后重新连接即可,此时不会创建任何工具。
命令行连接:treg connections connect 一条命令
习惯终端的开发者可以用 CLI 完成同样的事(命令详见 docs/context/interface/cli.md 与 USAGE.md):
# 连接 Instagram(浏览器授权 → treg 自动捕获 token) treg connections connect --provider instagram # Page 路线:核心工具 / 私信能力 treg connections connect --provider instagram --capability page-tools treg connections connect --provider instagram --capability page-messages授权开始前,CLI 会先向服务端取回当前生效的连接指引(POST /oauth/start返回的connect_guidance)并打印出来,让你看清本次授权将请求哪些权限。同一时期,--authorization-method与能力默认值由服务端的审核状态统一控制,CLI 本身不包含任何 Instagram 专属逻辑。
连接完成后,可用treg connections ls查看已连接账号与健康状态,treg connections resources <id>查看授权背后发现的账号。
调用 Instagram 数据:treg call 实战
连接成功后,像调用任何目录端点一样使用:
treg catalog search "instagram profile" # 按能力搜索端点 treg catalog get instagram.instagram.user.profile # 查看参数与价格 treg call instagram.instagram.user.profile \ --query "ig_user_id=17841400000000000" \ --query "fields=id,username,followers_count,media_count"几个高频端点示例:
| 端点 ID | 能做什么 |
|---|---|
instagram.instagram.user.profile | 读取自己账号的资料、粉丝数 |
instagram.instagram.user.posts | 列出帖子、点赞与评论数 |
instagram.instagram.account.insights | 账号触达、互动、受众指标(day / week / days_28) |
instagram.instagram.media.insights | 单条帖子的触达、收藏、分享数据 |
instagram.instagram.message.send | 回复客户主动发起的私信(受 Meta 消息窗口政策约束) |
双方法端点如何选授权?当一个端点两种路线都支持时,可用--authorization-method instagram-login或facebook-page显式指定(API 调用则用X-Treg-Authorization-Method头,该头只被 treg 消费、不会转发给上游)。省略时按确定规则回退:只有一个已连接授权就用它,否则默认 Instagram 直接登录。
遇到 HTTP 428 别慌:它表示"该端点需要一种你还没连的授权",返回体里带有稳定的字段——缺少的授权、所需能力、权限列表、修复用的 CLI 命令和 Dashboard 操作入口,照着执行即可,而不是一个模糊的报错。
常见问题(FAQ)
Q1:连接成功但没有生成工具?账号不是 Business/Creator 类型时,连接会保留但标记为setup_required。转换账号类型后重新连接即可。
Q2:直接登录能调用 hashtag 搜索吗?不能。标签搜索、商业发现等 11 个端点是Page 专属,需要facebook-page授权且账号已关联主页。这正是"两个授权相互独立"的设计。
Q3:发消息会不会变成群发工具?不会。instagram.instagram.message.send是回复型接口:对方必须先联系你,且受 Meta 的消息窗口与政策限制。发帖同样有配额——每个账号 24 小时最多 100 条 API 发布的帖子(轮播算一条),可先调用content_publishing_limit查询剩余额度。
Q4:旧的 Facebook Login 授权还能用吗?可以。数据库迁移 0010 会把历史 Instagram 授权标记为facebook-page,滚动升级无需重新连接。
参考资料
- 架构契约与已验证端点矩阵:docs/context/architecture/instagram-oauth.md
- 端点目录定义:src/treg/catalog/instagram.yaml、src/treg/catalog/instagram.extended.yaml
- CLI 命令参考:docs/context/interface/cli.md、USAGE.md
- 连接前端状态实现:frontend/src/state/connections.js
- 架构测试:tests/test_instagram_oauth_architecture.py
按上面的步骤走一遍,大约 5 分钟就能让 Agent 安全地读到你 Instagram 账号的私有数据——token 管理、刷新、权限缺口提示,全部交给 treg 处理。🚀
【免费下载链接】tregOpenRouter for agent tools. Join community here: https://discord.gg/6mQYYfFMAn项目地址: https://gitcode.com/GitHub_Trending/treg/treg
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考