【问题标题】:Facebook Graph API - get Posts in PHPFacebook Graph API - 用 PHP 获取帖子
【发布时间】:2016-06-01 09:00:55
【问题描述】:

我正在尝试从 Facebook 页面获取帖子。 我是在here 问题是页面有点慢(加载4或5秒)

我正在使用 2“foreach”来获取数据,也许这就是问题所在。


这是我的代码:

$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
        }
    }
}

我没有向您展示 "page_id""access_token" 变量,但它们是正确的。

如何才能获得更好的页面加载性能?

谢谢!

【问题讨论】:

  • 是的,如果你在一个循环中触发大量 API 请求,当然会很慢。改为使用字段扩展,一次性请求所有数据。 developers.facebook.com/docs/graph-api/using-graph-api/…
  • 谢谢!我正在使用这样的 Graph API 字段:"https://graph.facebook.com/".$page_id."/?fields=posts.limit(4){id,message,attachments{title,type,url,description,media{image{src}}}}&amp;access_token=" . $access_token,然后像数组一样读取它。

标签: php facebook performance facebook-graph-api posts


【解决方案1】:

是的,如果您在一个循环中触发多个 API 请求,当然会很慢。
(最慢的部分是您的应用发出的与 Facebook 的服务器通信的 HTTP 请求——如果您在一个循环中发出单个 API 请求,这意味着每个请求都需要一个 HTTP 请求。)

改为使用字段扩展,一次性请求所有数据:https://developers.facebook.com/docs/graph-api/using-graph-api/#fieldexpansion

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-19
    • 1970-01-01
    • 1970-01-01
    • 2018-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多