Im пытается получить сообщения на странице Facebook. я сделал это в here Проблема заключается в том, что страница является немного медленным (4 или 5 секунд, чтобы загрузить)Facebook Graph API - получить сообщения в PHP
Я использую 2 «Еогеасп», чтобы получить данные и, возможно, то будет проблема.
Вот мой код:
$json_object = @file_get_contents('https://graph.facebook.com/'.$page_id.'/posts?limit=4&access_token=' . $access_token);
$fbdata = json_decode($json_object);
foreach ($fbdata->data as $post)
{
$postid = $post->id;
$json_object2 = @file_get_contents('https://graph.facebook.com/'.$postid.'/attachments?access_token=' . $access_token);
$fbdata2 = json_decode($json_object2);
foreach ($fbdata2->data as $post2)
{
$title = $post2->title;
$type = $post2->type;
$url = $post2->url;
$desc = $post2->description;
$desc = str_replace("\n", "<br>", $desc);
if (strlen($desc) > 200){
$desc = substr($desc, 0, 200) . '...<br>...<br><a href="'.$url.'" target="_blank">Ver mais</a>';
}
$imgsrc = $post2->media->image->src;
if ($type=="note") {
?>
<div class="wrapper">
<a href="<?php echo $url;?>" target="_blank"><div class="img" style="background-image: url('<?php echo $imgsrc; ?>');"></div></a>
<a href="<?php echo $url;?>" target="_blank"><h1><?php echo $title; ?></h1></a>
<p><?php echo $desc; ?></p>
</div>
<?php
}
}
}
Im не показывая вам "PAGE_ID" и "access_token" переменных, но они правильны.
Что я могу сделать, чтобы получить лучшую производительность при загрузке страницы?
Спасибо!
Да, конечно, это медленно, если вы запускаете несколько запросов API внутри цикла. Вместо этого используйте расширение поля, чтобы запросить все эти данные за один раз. https://developers.facebook.com/docs/graph-api/using-graph-api/#fieldexpansion – CBroe
Спасибо! Я использую такие поля API Graph: '' https://graph.facebook.com/".$page_id."/?fields=posts.limit(4){id,message,attachments{title,type.url , описание, media {image {src}}}} & access_token = ". $ access_token' , а затем просто прочитайте его как массив. – danielfos