来自FB Graph API的长TTFB

时间:2017-06-20 15:29:24

标签: php facebook http facebook-graph-api http-headers

我写了一个 PHP脚本自制,以便从页面获取最后的 FB帖子,这只是从 jQuery / AJAX执行代码:  $("my_object").load("fb_feed.php");

在本地 PHP服务器上以在VPS 上运行到Time To First Byte非常长:至少 10s 20s 平均或更多

ini_set("allow_url_fopen", 1);

function getGraphUrl($param){
    return "https://graph.facebook.com/". $param ."access_token=THE_TOKEN";
}
function getContent($param){
    $url = getGraphUrl($param);
    return json_decode(file_get_contents($url));
}
$feed = getContent("ID_OF_THE_PAGE/feed?");
$posts = array();

foreach ($feed->data as $i => $post) {
    if(isset($post->message)){
        $object_id = getContent($post->id . "?fields=object_id&")->object_id;
        if(isset($object_id)){
        $img_url = "https://graph.facebook.com/" . $object_id . "/picture";
        $short = (getimagesize($img_url)[1] < 170 ? true : false);
        if($short){
            $img_url = "images/empty.png";
        }
        array_push($posts, array('id' => $post->id,'message' => $post->message,
        'img_url' => $img_url, 'date' => $post->created_time));
        }
    }
    if(count($posts) == 6){
        break;
    }
}

加载帖子的PHP脚本的摘录

一切正常,唯一的问题是装载时间非常长

有没有办法加载更快,而不是建立自己的缓存? 我的要求很差吗?

0 个答案:

没有答案