我正在使用facebook api从页面insights
对象中读取post_impressions
字段。问题是,您只能支持1个帖子的结果,或者显示一个月/周/天内所有帖子的所有展示次数的结果,这意味着您无法取回显示所有帖子的结果及其对应的{{ 1}}。
我现在想要它的工作方式是循环我的facebook帖子并在该循环中我为insights
对象添加了一个file_get_contents,只需在url中添加一个循环的post id。
这样我收到的每个帖子都会向FB api发出新的请求,这会对加载时间产生很大的影响。
有更有效的方法吗?当我删除我的代码部分时,我的网站加载速度更快。
以下是我的代码摘要以获得更好的想法:
$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;
}
答案 0 :(得分:2)
您可以使用Field Expansion语法一次性完成所有操作:
.../367712570004555/posts?fields=comments,...,insights.metric(post_impressions)