Php 使用facebook api获取帖子视图的更有效方法

Php 使用facebook api获取帖子视图的更有效方法,php,facebook,object,facebook-graph-api,Php,Facebook,Object,Facebook Graph Api,我正在使用facebook api从pagesinsights对象中读取post\u impressions字段。问题是,您只能返回一篇文章的结果,或者显示一个月/周/天内所有文章的所有印象的结果,这意味着您无法返回显示所有文章及其相应的post\u印象的结果 我现在想让它正常工作的方法是循环我的facebook帖子,在这个循环中,我为insights对象放置了一个文件\u get\u内容,然后在url中添加一个循环帖子id 这样,我收到的每一篇帖子都会向FBAPI发出一个新的请求,这对加载时间

我正在使用facebook api从pages
insights
对象中读取
post\u impressions
字段。问题是,您只能返回一篇文章的结果,或者显示一个月/周/天内所有文章的所有印象的结果,这意味着您无法返回显示所有文章及其相应的
post\u印象的结果

我现在想让它正常工作的方法是循环我的facebook帖子,在这个循环中,我为
insights
对象放置了一个文件\u get\u内容,然后在url中添加一个循环帖子id

这样,我收到的每一篇帖子都会向FBAPI发出一个新的请求,这对加载时间造成了很大的损失

有没有更有效的方法?当我删除这部分代码时,我的站点加载速度会更快

以下是我的代码摘要,以获得更好的想法:

$json_object = file_get_contents("https://graph.facebook.com/v2.10/367712570004555/posts?fields=comments,full_picture,likes,message,picture,story,permalink_url,updated_time,from&access_token=12303302670122ZDzN5ucp8JzMf5VBDdY");

$feedarray = json_decode($json_object);

foreach ($feedarray->data as $key => $feed_data)
{
    $json_insights = file_get_contents("https://graph.facebook.com/v2.10/".$feed_data->id."/insights/post_impressions?access_token=EAACEdEose0cBANjKErkMLhCgmZBBrgLn8KtZBW2d6JbWz7sZAivld67JxvP8MqyZCs9xg3Bh11lzETOwd64LIpAPp3zbstu8ELFZC8HOwYyxckqJ60WQcVL1FqB3iy5L3oRCsFSQA7MzHGgcqIYxsjAlJomYrOMZCqo6PwZDZD");

    $views = $insights->data[0]->values[0]->value;

    echo $views;
}
您可以使用语法一次完成这一切:

.../367712570004555/posts?fields=comments,...,insights.metric(post_impressions)
您可以使用语法一次完成这一切:

.../367712570004555/posts?fields=comments,...,insights.metric(post_impressions)

好的,很好,一个简单的问题(如果它足够大,可以放一篇新文章,那么我就发一篇)。如何将访问令牌更改为永久令牌?因为我突然收到一个错误的请求,当我检查请求时,我看到:
验证访问令牌时出错:会话已于PDT 2017年9月26日星期二03:00:00过期。当前时间是星期二,2017年9月26日03:05:13 PDT。
解释了如何延长令牌生存期。好的,很好,一个简单的问题(如果它足够大,可以发布一篇新文章,那么我将发布一篇)。如何将访问令牌更改为永久令牌?因为我突然收到一个错误的请求,当我检查请求时,我看到:
验证访问令牌时出错:会话已于PDT 2017年9月26日星期二03:00:00过期。当前时间为PDT时间17年9月26日星期二03:05:13。
说明如何延长令牌生存期。