我有一个问题,我希望你们都能帮助我。我在用Wordpress。在我的国家,facebook是被禁止的。因此我无法通过以下地址访问我的Facebook个人资料图片:
链接A:http://graph.facebook.com/100001225080368/picture ->和facebook将把链接B返回给浏览器:
链接B:http://profile.ak.fbcdn.net/hprofile-ak-snc4/161159_100001225080368_1270343183_q.jpg
我的博客上有个应用程序。它将连接到facebook并获取所有数据(状态、图片、链接等),然后显示在我的博客上。问题是:可以显示文本数据,但不能显示头像。因为显示头像的代码是:
<img src="$fb_pic_id" />我的php代码中的$fb_pic_id将返回链接A ->这个链接有facebook域名,在我的国家(facebook是被禁止的),浏览器不能显示,默认情况下连接将在30秒后超时。
但如果我将链接B传递给"src“attr,则会显示个人资料图片。但我不能硬编码这个链接在我的php代码,因为当我(和其他用户)改变个人资料图片,链接B将不是真的。
所以我想问我们是否可以使用PHP代码来获取从链接A返回的链接B,之后,我会将LinkB设置为"src“attr以显示最新的facebook个人资料图片ID。
谢谢,我希望你能帮助我:)
发布于 2012-02-15 20:30:08
脸书使用的是使用Location头的超文本传输协议重定向,所以获取图片的最终网址非常简单:
$url = 'http://graph.facebook.com/100001225080368/picture';
$ch = curl_init($url);
curl_setopt_array($ch, array(
CURLOPT_FOLLOWLOCATION => false,
CURLOPT_HEADER => true,
CURLINFO_HEADER_OUT => true,
CURLOPT_NOBODY => true,
CURLOPT_RETURNTRANSFER => true
));
$headers = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($code == 302) {
preg_match('/Location:(.*?)\n/', $headers, $matches);
// NOTE: this will contain URL from `*.fbcdn.net`
$directURL = trim(array_pop($matches));
} else {
// NOTE: Previous code wasn't redirect by Facebook to original image
// Do some fallback...
}https://stackoverflow.com/questions/9292213
复制相似问题