Facebook graph api 通过graph api访问全尺寸(851x315)时间轴封面照片
我注意到,当我通过Graph API(使用PHP)访问timeline封面照片URL时,返回的照片是720x266,而不是851x315。使用,Facebook graph api 通过graph api访问全尺寸(851x315)时间轴封面照片,facebook-graph-api,Facebook Graph Api,我注意到,当我通过Graph API(使用PHP)访问timeline封面照片URL时,返回的照片是720x266,而不是851x315。使用,/userId/?field=cover或访问访问/userId时返回的json数组的['cover']['source']中的url 我一直找不到一种方法来检索全尺寸封面照片。使用firebug,我可以看到Facebook加载了全尺寸的851x315图像,URL的唯一区别似乎是API返回的路径中有720x720 Facebook加载的内容: Grap
/userId/?field=cover
或访问访问/userId
时返回的json数组的['cover']['source']
中的url
我一直找不到一种方法来检索全尺寸封面照片。使用firebug,我可以看到Facebook加载了全尺寸的851x315图像,URL的唯一区别似乎是API返回的路径中有720x720
Facebook加载的内容:
Graph API返回的内容
有没有办法让我直接访问全尺寸封面照片的URL?我可以解析API返回的URL来剥离720x720,但我希望这是一种更优雅的方式,可以直接获取全尺寸封面照片URL。访问facebook用户的全尺寸时间表封面照片
在php中,我们可以执行以下操作。 这是一个小技巧,我不能保证它会工作一辈子 如您所见,返回的照片url中有一个
s720x720
。现在我们将用l720
(l720)替换它。在php中的preg_replace()的帮助下
这会回来的, https://a3.sphotos.ak.fbcdn.net/hphotos-ak-prn1/l720x720/xxxxxx\u xxxxxxxxxxxxx\u xxxxxxxxx\u n.jpg
您也可以使用javascript实现这一点
coverphoto_url = coverphoto_url.replace(/s720/i, 'l720');
如果您不知道如何通过graph API检索封面照片,请阅读此问题
希望这对某人有所帮助:)在我的测试中,url的这一部分似乎是问题的关键:
../c0.0.851.315/…
因此,执行如下请求:
$url = "https://graph.facebook.com/{$id}?fields=cover";
// // this points it to the actual banner, not the fullsized one
$key_851 = 'c0.0.851.315';
$response = json_decode( file_get_contents( $url ) );
if( is_object( $response ) && property_exists( $response->cover , 'source' ) ) {
$coverphoto_url = preg_replace( '/s720(\w*\.*)\d*(?<!\/)/i', $key_851 ,$response->cover->source );
echo $coverphoto_url;
}
$url=”https://graph.facebook.com/{$id}?字段=封面“;
////这将指向实际的横幅,而不是完整的横幅
$key_851='c0.0.851.315';
$response=json_decode(文件获取内容($url));
如果(是对象($response)&&property_存在($response->cover,'source')){
$coverphoto\u url=preg\u replace('/s720(\w*\.*)d*(?新的Facebook Graph API打破了公认的答案,我能够通过以下功能获得JavaScript格式的高质量封面照片:
FB.api("/hawaiianchimp?fields=cover", function(response){
FB.api("/"+response.cover.id, function(response){
var img_src = response.images[0].source;
});
});
这将获取封面照片ID,然后执行第二个Graph API调用以获取图像源如果它对任何人都有帮助,我现在就这样做,$large_cover_photo=explode('s720x720/',$main_page['cover']['source']);$large_cover_photo=内爆('',$large_cover_photo)$main_page是我查询/userid时返回的json数组,但如果有人知道怎么做的话,找到一种直接访问全尺寸图像的方法仍然是最好的。你这样做没问题。现在去找一个真正的挑战;)只是向未来的读者指出,这是可行的,但它不是100%可靠的。如果您计划使用它,至少在
处理程序上附加一个onerror
处理程序,以便在失败时恢复
FB.api("/hawaiianchimp?fields=cover", function(response){
FB.api("/"+response.cover.id, function(response){
var img_src = response.images[0].source;
});
});