根据 Facebook 的 Graph API 文档(此处),您可以通过以下 URL 访问各种尺寸的用户个人资料图片:
https://graph.facebook.com/(userid)/picture?type=small
https://graph.facebook.com/(userid)/picture?type=large
您会注意到第一个解析为以 _t.jpg(小缩略图)结尾的 url,第二个解析为以 _n.jpg(大图像)结尾的 URL。到目前为止,一切都很好。等效地,我们应该能够像这样查询这些图像:
https://graph.facebook.com/(userid)?fields=picture&type=small
https://graph.facebook.com/(userid)?fields=picture&type=large
后一种格式按预期工作了好几个月,直到几天前它突然开始完全忽略“类型”参数 - 现在一切都解析为以 _q.jpg 结尾的图像,如果没有“类型”是默认值指定的。结果,我不再想办法在 PHP 中查询大图像(我的真正问题)。它曾经像这样工作:
$pic = $facebook->api('/me', array('fields' => 'picture', 'type' => 'large'));
...但如上所述,“类型”已自发地开始被忽略。我已经花了几个小时搜索他们的文档,但找不到任何关于已更改内容的参考,或者应该完成的“新”方式 - 任何指针都将不胜感激......
编辑:
以下任何一项都不起作用(不返回任何内容):
$pic = $facebook->api('/me/picture', array('type' => 'large'));
$pic = $facebook->api('/(my_uid)/picture', array('type' => 'large'));
$pic = $facebook->api('/me/picture/?type=large');
$pic = $facebook->api('/(my_uid)/picture/?type=large');
基本上,由于 Facebook 几天前破坏了事情,似乎没有任何方法可以从 PHP 获取非默认图片大小。您可以从 Graph API Explorer(此处)自己尝试一些调用。
其他相关/相关链接:
http://stackoverflow.com/questions/2978761/facebook-graph-api-will-not-give-me-picture-data
http://stackoverflow.com/questions/7718704/requesting-picture-for-event