我需要将用户图像作为PHP中的图像对象。
最明显的选择将是做到以下几点:在PHP中通过curl获取用户个人资料图像不起作用
$url = 'https://graph.facebook.com/'.$fb_id.'/picture?type=large';
$img = imagecreatefromjpeg($url);
这工作我测试服务器上,而不是在服务器上运行此脚本应该最终运行(allow_url_fopen已被关闭,那里)。
所以,我想通过卷曲获得的图像:
function LoadJpeg($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 0);
$fileContents = curl_exec($ch);
curl_close($ch);
$img = imagecreatefromstring($fileContents);
return $img;
}
$url = 'https://graph.facebook.com/'.$fb_id.'/picture?type=large';
$img = LoadJpeg($url);
然而,这不符合Facebook的个人资料图片工作。
例如,使用卷曲从google.com加载Google Googles徽标完美。
有人可以告诉我为什么或告诉我如何实现我想要做的?
感谢您的回答,但设置用户代理并不能解决问题。 关于TOS:我正在编写一个应用程序,可以为正在使用它的用户使用用户配置文件图像。我在这里看不到问题 - 或者我错过了什么? –
我也尝试通过设置除用户代理以外的其他头字段来模拟普通的浏览器调用,但没有运气。 真正令我困惑的是imagecreatefromjpeg不会遇到任何这些问题;它只是检索图像。 –