You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

未过审Instagram API本地调用:能否获取用户帖子赞与评论?

React+NextJS项目中Facebook/Instagram Graph API的权限与登录问题

项目背景

我正在开发一个基于React和NextJS的项目,功能是用户输入用户名后获取该用户的资料、单帖赞数及评论。为此我已将Instagram账号升级为创作者账号,再转为商业专业账号,随后在Facebook开发者平台创建了应用,配置了允许域名及localhost重定向地址。当前使用的登录函数如下:

FB.login(
  (response) => {
    if (response.authResponse) {
      console.log("Welcome!  Fetching your information.... ");
      const token = response.authResponse.accessToken;
      setAccessToken(token);
      const userId = response.authResponse.userID;
    } else {
      console.log(
        "User canceled login or did not fully authorize."
      );
    }
  },
  { scope: "email,public_profile" }
);

问题1:是否必须由用户完成登录操作?能否直接用我自己的账号实现搜索功能?

我曾尝试在useEffect中自动触发登录,但文档显示浏览器会阻止此类非事件触发的操作。

问题2:权限相关疑问

当前请求的权限范围为email和public_profile,但要通过Graph API查询媒体或评论,需要instagram_basic、pages_read_engagement及pages_show_list权限。当我将权限范围设置为这些时,点击登录会弹出“抱歉,出现错误...”的提示,不确定是否是权限问题。另外,文档提到应用无需提交Facebook审核即可请求public profile和email权限,想知道:

  • 能否不提交应用审核就获取帖子的赞数与评论?
  • 要请求instagram_basic和pages_show_list权限需要怎么做?

问题1解答

  • 必须由用户主动触发登录:浏览器的安全拦截机制会阻止非用户交互(比如useEffect自动执行)触发的登录弹窗,所以无法绕过用户主动操作完成登录。
  • 可以用自己的账号实现搜索功能:你可以为自己的账号生成长期访问令牌(最长60天,支持刷新),在后端直接调用Graph API,无需前端触发登录。但这种方式仅能访问你自己账号有权限获取的数据,无法查询其他用户的非公开内容(即使是公开账号,部分数据也需要对应权限)。

问题2解答

  • 不提交审核获取赞数与评论的可能性:
    • 若查询的是你自己的商业/创作者账号下的内容,用自己的长期令牌配合instagram_basic等权限,无需提交审核;
    • 若要让普通用户登录后查询他们自己的内容,或查询其他公开用户的内容,则必须提交应用审核,获取权限批准。
  • 请求instagram_basic和pages_show_list权限的步骤:
    1. 绑定账号:在Facebook开发者平台的应用设置中,关联你的Instagram商业账号和对应的Facebook主页(pages_show_list需要绑定主页,且你是主页管理员)。
    2. 调整权限参数:将登录函数的scope改为"instagram_basic,pages_show_list,pages_read_engagement"(注意权限间无空格)。
    3. 测试环境验证:确保测试账号是应用的开发者/管理员/测试用户,且已关联对应的主页和Instagram账号,开发模式下仅测试用户能使用这些权限。
    4. 面向普通用户的审核:若要开放给普通用户使用,需在Facebook开发者平台的“应用审核”页面提交权限申请,详细说明应用使用这些权限的场景,等待审核通过。

内容的提问来源于stack exchange,提问作者seven

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 11:40:31