未过审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权限的步骤:- 绑定账号:在Facebook开发者平台的应用设置中,关联你的Instagram商业账号和对应的Facebook主页(
pages_show_list需要绑定主页,且你是主页管理员)。 - 调整权限参数:将登录函数的
scope改为"instagram_basic,pages_show_list,pages_read_engagement"(注意权限间无空格)。 - 测试环境验证:确保测试账号是应用的开发者/管理员/测试用户,且已关联对应的主页和Instagram账号,开发模式下仅测试用户能使用这些权限。
- 面向普通用户的审核:若要开放给普通用户使用,需在Facebook开发者平台的“应用审核”页面提交权限申请,详细说明应用使用这些权限的场景,等待审核通过。
- 绑定账号:在Facebook开发者平台的应用设置中,关联你的Instagram商业账号和对应的Facebook主页(
内容的提问来源于stack exchange,提问作者seven
相关产品推荐
相关产品推荐

