在用户注册后,我获取用户数据(姓名、生日、位置等)以及用户个人资料图片。
目前,我可以这样做:/me?fields=picture,name
,但是返回的图片分辨率太低,所以我想获取具有高度的图片参数(如 here 所述)。
在我看来,我唯一的选择是将其分成两个请求,这似乎效率不高:
- 获取用户数据
me/?fields=name
- 获取用户图片
me/picture?height=500&redirect=false
是否有办法将其合并为一个请求?
最佳答案
使用字段扩展,只需一次API调用:
/me?fields=name,picture.width(500).height(500),birthday
API Explorer 测试:https://developers.facebook.com/tools/explorer/?method=GET&path=me%3Ffields%3Dname%2Cpicture.width%28500%29.height%28500%29&version=v2.2
有关字段扩展的更多信息:https://developers.facebook.com/docs/graph-api/using-graph-api/v2.2#fieldexpansion
Batch Requests将是另一种解决方案,尽管在那种情况下不是一个很好的解决方案,因为它们要复杂得多(更多代码,需要考虑的更多事情)并且它们不算作一次调用:
each call within the batch is counted separately for the purposes of calculating API call limits and resource limits
...意思是,它们只比 2 个单独的调用快(与批处理中最慢的调用一样快),但字段扩展实际上只是 1 个调用。批处理请求用于“可能不相关的图形 API 调用”。
关于php - 使用 Facebook PHP SDK 在单个请求中检索多个字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27104393/