And*_*old 1 javascript facebook-graph-api facebook-insights
我正在尝试使用JavaScript Insights API获取属于页面的最佳Facebook帖子列表.但是,我似乎无法通过一次API调用找到一种方法.我在这里填写了文档:https://developers.facebook.com/docs/graph-api/reference/v2.4/insights
除非我遗漏了某些内容,否则似乎没有办法简单地检索热门帖子列表并在结果中包含参与/喜欢/分享/评论等.您可以获取一般统计信息,例如页面上所有帖子的完全参与度,但没有任何内容可以通过帖子分解.
我能想到的唯一一件事就是使用Graph API获取页面帖子的列表.
/[page-Id]/posts
Run Code Online (Sandbox Code Playgroud)
然后使用这些结果中的post-Id来检索该特定帖子的洞察.
/[post-Id]/insights
Run Code Online (Sandbox Code Playgroud)
这可能会导致我进行大量的API调用以获得我正在寻找的东西.
我希望有更好的方法.有什么建议?
我使用如下所示的批量图API调用找到了解决此问题的方法:https://developers.facebook.com/docs/graph-api/making-multiple-requests
在我的情况下,我需要从Facebook页面获得每个帖子的印象,参与度,喜欢,评论和分享.为实现这一目标,我打了一个类似的电话.
var pageName = 'YourFacebookPage',
yourToken = 'YourAccessToken';
FB.api('/', 'POST', {
access_token: yourToken,
batch:
[
{
method: 'GET',
name: 'get-posts',
relative_url: pageName + '/posts'
},
{
method: 'GET',
relative_url: '?ids={result=get-posts:$.data.*.id}'
},
{
method: 'GET',
relative_url: pageName + '/insights/post_impressions/lifetime?ids={result=get-posts:$.data.*.id}'
},
{
method: 'GET',
relative_url: pageName + '/insights/post_engaged_users/lifetime?ids={result=get-posts:$.data.*.id}'
},
{
method: 'GET',
relative_url: 'likes?ids={result=get-posts:$.data.*.id}'
},
{
method: 'GET',
relative_url: 'comments?ids={result=get-posts:$.data.*.id}'
},
{
method: 'GET',
relative_url: 'sharedposts?ids={result=get-posts:$.data.*.id}'
}
]
}, function (response) {
console.log(JSON.parse(response[1].body), 'post details');
console.log(JSON.parse(response[2].body), 'impressions');
console.log(JSON.parse(response[3].body), 'engagement');
console.log(JSON.parse(response[4].body), 'likes');
console.log(JSON.parse(response[5].body), 'comments');
console.log(JSON.parse(response[6].body), 'shares');
}
);
Run Code Online (Sandbox Code Playgroud)
不幸的是,Facebook并未将这些回复结合起来.每个调用都会作为响应的单独属性返回,因此在UI中显示之前,您需要将不同的指标组合到一个对象中.
这对我有用,希望它可以帮助其他人解决同样的问题.
干杯.
| 归档时间: |
|
| 查看次数: |
3881 次 |
| 最近记录: |