我有一个应用程序,它使用PHP在登录后从Facebook获取用户图像。
使用{userid}/picture
传统方法停止工作,因为它返回了一个"更新您的浏览器"信息。
我过去常常使用file_get_contents()
我现在将CURL
与浏览器用户代理一起使用,或file_get_contents
使用上下文。
似乎工作正常,但过了一段时间,Facebook开始返回null。就像它只是一个空白页面返回。
我该如何解决这个问题?
我知道很多其他人也面临这个问题。但我也可以看到一些网站工作正常。
以下是我用于获取图片的旧代码:
$im = file_get_contents($url);
以下是我使用的新代码:
function get_file($url) {
$options = array(
'http' => array(
'method'=>"GET",
'header'=>"Accept-language: en\r\n".
"User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.2 (KHTML, like Gecko) Chrome/22.0.1216.0 Safari/537.2\r\n"
)
);
$context = stream_context_create($options);
$data = ""
$data = @file_get_contents($url, false, $context);
return $data;
}
}