Сайты, использующие API api graph Facebook, загружаются очень медленно - PullRequest
0 голосов
/ 14 мая 2019

У меня есть несколько веб-сайтов, на которых есть собственный фид Facebook, который я загружаю с помощью Graph API.

Раньше все загружалось очень быстро, но примерно через неделю или две все сайты перестали загружаться в части подачи и полностью завершали загрузку только через 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;

1 Ответ

0 голосов
/ 17 мая 2019

Я исправил это с помощью 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...