使用 Facebook 图 api 的网站加载速度非常慢
Websites using the Facebook graph api are loading very slow
我有几个网站有自定义 Facebook 提要,我使用 Graph API 加载了这些提要。
过去,所有内容加载速度都非常快,但自从大约一两周后,所有站点都在 Feed 部分停止加载,并且仅在 30 秒或更长时间后才完全加载完毕。
这可能是什么原因造成的?
我确定这是 Facebook 提要,因为当我删除它时,网站会再次快速加载。
以下是来自存在此问题的网站的示例供稿:
$json_object = file_get_contents("https://graph.facebook.com/v3.2/thepagesid/posts?fields=full_picture%2Cmessage%2Cstory%2Cpermalink_url%2Cupdated_time%2Cfrom&access_token=mytoken");
$feedarray = json_decode($json_object);
$f = 0;
foreach ( $feedarray->data as $key => $feed_data )
{
if($feed_data->full_picture != ''){
$fbimage = $feed_data->full_picture;
}else{
$fbimage = 'assets/images/fbnoimg.jpg';
}
$shortstrfb = substr($feed_data->message, 0, 170) . '...';
if($feed_data->message != ''){
$f++;
}
if($f > 4){
break;
}
if($feed_data->message != '' && $feed_data->from->name == 'facebook page name'){
$facebookfeed .= '
<div class="col-lg-3 col-md-4 col-sm-6">
<div class="single-product-wrap fbwrapdiv">
<div class="product-image">
<a href="'.$feed_data->permalink_url.'" target="_blank">
<span class="datefb">'.date("d-m-Y",strtotime($feed_data->updated_time)).'</span>
<img class="fbimgclass" src="'.$fbimage.'" alt=""></a>
<div class="product-action">
<a href="'.$feed_data->permalink_url.'" target="_blank" class="wishlist"><i class="fab fa-facebook-f"></i></a>
</div>
</div>
<div class="product-content">
<div class="price-box">
<p class="facebooktext">'.$shortstrfb.'</p>
</div>
</div>
</div>
</div>';
}
}
echo $facebookfeed;
我用 curl 修复了它。
我替换了:
$json_object = file_get_contents("https://graph.facebook.com/v3.2/thepagesid/posts?fields=full_picture%2Cmessage%2Cstory%2Cpermalink_url%2Cupdated_time%2Cfrom&access_token=mytoken");
$feedarray = json_decode($json_object);
与:
$graph_url = 'https://graph.facebook.com/v3.2/thepagesid/posts?fields=full_picture%2Cmessage%2Cstory%2Cpermalink_url%2Cupdated_time%2Cfrom&access_token=mytoken';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $graph_url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$output = curl_exec($ch);
curl_close($ch);
$feedarray = json_decode($output);
我有几个网站有自定义 Facebook 提要,我使用 Graph API 加载了这些提要。
过去,所有内容加载速度都非常快,但自从大约一两周后,所有站点都在 Feed 部分停止加载,并且仅在 30 秒或更长时间后才完全加载完毕。
这可能是什么原因造成的?
我确定这是 Facebook 提要,因为当我删除它时,网站会再次快速加载。
以下是来自存在此问题的网站的示例供稿:
$json_object = file_get_contents("https://graph.facebook.com/v3.2/thepagesid/posts?fields=full_picture%2Cmessage%2Cstory%2Cpermalink_url%2Cupdated_time%2Cfrom&access_token=mytoken");
$feedarray = json_decode($json_object);
$f = 0;
foreach ( $feedarray->data as $key => $feed_data )
{
if($feed_data->full_picture != ''){
$fbimage = $feed_data->full_picture;
}else{
$fbimage = 'assets/images/fbnoimg.jpg';
}
$shortstrfb = substr($feed_data->message, 0, 170) . '...';
if($feed_data->message != ''){
$f++;
}
if($f > 4){
break;
}
if($feed_data->message != '' && $feed_data->from->name == 'facebook page name'){
$facebookfeed .= '
<div class="col-lg-3 col-md-4 col-sm-6">
<div class="single-product-wrap fbwrapdiv">
<div class="product-image">
<a href="'.$feed_data->permalink_url.'" target="_blank">
<span class="datefb">'.date("d-m-Y",strtotime($feed_data->updated_time)).'</span>
<img class="fbimgclass" src="'.$fbimage.'" alt=""></a>
<div class="product-action">
<a href="'.$feed_data->permalink_url.'" target="_blank" class="wishlist"><i class="fab fa-facebook-f"></i></a>
</div>
</div>
<div class="product-content">
<div class="price-box">
<p class="facebooktext">'.$shortstrfb.'</p>
</div>
</div>
</div>
</div>';
}
}
echo $facebookfeed;
我用 curl 修复了它。
我替换了:
$json_object = file_get_contents("https://graph.facebook.com/v3.2/thepagesid/posts?fields=full_picture%2Cmessage%2Cstory%2Cpermalink_url%2Cupdated_time%2Cfrom&access_token=mytoken");
$feedarray = json_decode($json_object);
与:
$graph_url = 'https://graph.facebook.com/v3.2/thepagesid/posts?fields=full_picture%2Cmessage%2Cstory%2Cpermalink_url%2Cupdated_time%2Cfrom&access_token=mytoken';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $graph_url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$output = curl_exec($ch);
curl_close($ch);
$feedarray = json_decode($output);