调用Facebook Graph API获取好友列表返回空数据问题咨询
Facebook Graph Explorer 调用好友接口返回空数组问题解答
首先明确:你的接口路径写法没有错误,大量开发者在测试阶段都遇到过完全相同的返回异常,核心问题出在Token使用和权限配置上,具体原因和修复方式如下:
- 第一类核心错误:使用了错误的Token类型
调用/{fb-id}/friends接口禁止使用App Token,该接口属于用户数据接口,必须传入对应用户的User Access Token才有权限读取好友关系。App Token仅能访问应用层级的公开数据,不具备任何用户数据读取权限,你观察到的totalCount=4但data为空就是典型的Token权限不足特征:接口能统计到关联的好友总数,但无权拉取好友明细数据,因此直接返回空数组。 - 第二类核心错误:Token未携带对应权限
你提到应用的user_friends权限因未完成身份验证、未提交审核处于驳回状态,注意:测试环境下的测试用户不需要应用过审即可使用user_friends权限,但前提是生成User Access Token时,必须在权限scope中显式勾选user_friends。如果生成Token时未勾选该权限,哪怕测试账号已经在应用侧配置了对应权限,请求依然会返回空数据。 - 第三类影响因素:测试调用配额耗尽
未完成个人身份验证的应用,测试接口调用存在配额限制,你看到近30天25次调用后计数不再增长,就是触发了未验证应用的测试配额阈值,配额耗尽后接口会返回无权限的空结果,等待配额周期重置或完成身份验证即可恢复。
正确操作流程
- 打开Graph Explorer,顶部选中你的测试应用,用户身份选择需要拉取好友列表的对应测试用户,不要选择App Token选项
- 点击生成Access Token,在弹出的权限授权页确认勾选
user_friends权限,若之前生成过不带该权限的Token,需要重新生成新的Token - 请求路径填写
/me/friends或/{对应测试用户的ID}/friends,请求方法选择GET,API版本选择v14.0即可,不需要额外传参
额外注意事项
- 未提交审核、未完成验证的应用,仅能拉取同应用下创建的测试用户之间的好友数据,真实账号的好友关系无法正常返回,哪怕账号本身是应用的开发者/测试员也不行
- 测试用户之间的好友关系需要在应用的测试用户管理面板中操作添加,在Facebook主站添加的好友关系不会被测试环境识别
- 你配置的测试账号互加好友操作是正确的,返回值中的totalCount和实际好友数匹配也印证了这一点,不需要重复调整好友关系配置
内容的提问来源于stack exchange,提问作者Budi
相关产品推荐
相关产品推荐

