通过Facebook Login对话框授权后,如何获取指定Facebook企业ID?
获取刚授权的Facebook企业ID的实用方案
你要的是用户本次Login授权时开放的特定企业ID,不是所有你有权访问的,给你两个靠谱的实现方法:
方法1:从Login授权响应直接拿(最直接)
在前端发起Facebook Login请求的时候,除了要加business_management权限,还要在请求参数里指定fields=businesses。用户完成授权后,前端会收到包含businesses数组的返回数据,里面就是用户这次授权的企业ID和基础信息,直接把这个ID传给后端用就行。
方法2:用System Access Token调用API筛选
如果前端没拿到数据,就用你已经拿到的system access token调用API:
GET /me/businesses?fields=id,name
这个接口会返回所有你有权访问的企业,要找到刚授权的那个,可以这么做:
- 先调用
GET /me/permissions拿到权限的granted_time(授权时间) - 对比
/me/businesses返回的企业关联时间,挑最近授权的那个;如果用户这次只授权了一家企业,那返回结果里唯一的就是目标ID
注意点
- 一定要确保Login请求包含
business_management权限,没有这个权限根本拿不到企业数据 - 你的system access token必须有访问用户企业数据的权限,不然接口会返回权限错误
内容的提问来源于stack exchange,提问作者Nightwolf
相关产品推荐
相关产品推荐

