获取自有Facebook页面fan_count遇权限错误,求解决方案
解决Facebook Graph API获取自有页面fan_count的审核错误问题
你猜的没错!这个问题确实出在访问令牌的类型上——你现在用的APP_ID|APP_SECRET是应用访问令牌,它并不适用于直接获取自有页面的fan_count,改用页面访问令牌就能绕过这个审核提示。
为什么应用访问令牌不行?
应用访问令牌的核心作用是管理应用本身的配置、调用应用级别的接口,它没有和特定页面绑定的身份权限。当你用它请求页面数据时,Facebook会默认你在访问公开页面内容,因此触发了「Page Public Content Access」的审核要求,哪怕是你自己的页面也不例外。而页面访问令牌是和你管理的页面直接绑定的,能证明你是页面的拥有者/管理员,所以不需要审核就能访问自有页面的数据。
如何获取页面访问令牌?
分两步就能拿到:
- 先获取用户访问令牌
这个令牌需要包含pages_show_list和pages_read_engagement权限(针对v2.12版本,这两个是访问页面数据的必要权限)。你可以通过Facebook的登录流程生成,或者直接用开发者平台的「Graph API Explorer」快速生成:登录你的开发者账号,选中对应应用,添加所需权限后就能生成用户访问令牌。 - 用用户令牌换页面令牌
调用/{user-id}/accounts接口(user-id可以用me代替,代表当前登录用户),接口示例:
接口返回的结果里,每个你管理的页面都会附带对应的https://graph.facebook.com/v2.12/me/accounts?access_token=你的用户访问令牌access_token字段,这就是你需要的页面访问令牌。
使用页面访问令牌请求fan_count
把页面访问令牌替换掉原来的APP_ID|APP_SECRET,调用接口:
https://graph.facebook.com/v2.12/?id=SITENAME&fields=fan_count&access_token=你的页面访问令牌
这样就能正常获取自有页面的fan_count,不会再收到审核要求的错误提示了。
额外小贴士
- 页面访问令牌默认是短期有效的,如果需要长期使用,可以把它转换成长期令牌:用短期页面令牌调用
/{page-id}?fields=access_token&access_token=长期用户访问令牌,就能得到有效期60天的长期页面令牌。 - 确保你的用户账号确实是目标页面的管理员,否则无法获取该页面的访问令牌。
内容的提问来源于stack exchange,提问作者Jan
相关产品推荐
相关产品推荐

