Facebook API获取账号列表时如何筛选页面得到Page Access Token
问题根因
你遇到的筛选不生效问题核心原因有两个:
/{user_id}/accounts属于Graph API基础端点,本身不支持自定义filtering查询参数,你传入的筛选规则会被服务端直接忽略,因此会默认返回当前授权用户有权限的全量主页列表,不会做服务端过滤。- 你使用的
filtering语法是营销API(Marketing API)下部分列表端点支持的专属筛选规则,不是Graph API全局通用参数,在基础社交图谱接口上没有任何效果。
最优解决方案(无需拉取全量列表)
如果你已经明确知道目标主页的pageId,完全不需要调用列表接口再做筛选,直接请求单主页信息端点即可直接拿到对应Page Access Token:
GET /{target_page_id}?fields=access_token&access_token={your_user_access_token}
只要当前用户授权token拥有该主页的对应管理权限,接口会直接返回目标主页的Page Access Token,没有多余数据返回,性能远高于拉全量列表再过滤。
备选方案(必须使用/accounts接口时)
如果你的业务逻辑必须调用/{user_id}/accounts接口,不需要再尝试调整filtering参数格式,该端点没有开放服务端筛选能力,拿到接口返回的全量主页列表后,在本地遍历匹配id字段等于目标pageId的条目,该条目下的access_token字段就是你需要的Page Access Token。
内容的提问来源于stack exchange,提问作者elco45
相关产品推荐
相关产品推荐

