Python / Facebook-SDk如何获取页面上张贴的照片的份数

时间:2013-06-23 15:22:19

标签: python facebook facebook-graph-api facebook-fql

我有一个Facebook页面,我发布照片,它们出现在时间轴上。我看到那里的按钮,靠近'喜欢'和'评论','分享'。我看到这个项目分享了多少次。我怎么能得到这个数据?

我尝试的事情:

img_id_on_facebook = '123'
fb = facebook.GraphAPI(token)
fb.request(path='/123/shares')

这给出了:

{
  "error": {
    "message": "Unsupported get request.", 
    "type": "GraphMethodException", 
    "code": 100
  }
}

另一次尝试:

fb.request(path='/123/', args={'fields': 'shares'})

给出同样的错误。

通话:

fb.request(path='/123/')

没有钥匙'分享'。

我也尝试了fql:

fb.fql('SELECT shares_count FROM link_stat WHERE url=https://facebook.com/123')

这给出了:

GraphAPIError: Impersonated access tokens can only be used with the Graph API

我也尝试过:

fb.request(path='/[PAGE_ID]_[PHOTO ID]/')

这会产生错误:没有这样的终点。

任何人都知道如何获得照片的份额?有办法吗?

1 个答案:

答案 0 :(得分:1)

您需要使用帖子ID,其格式应为pageid_postedid。例如,这张照片

https://www.facebook.com/photo.php?fbid=10151690351123254&set=a.100690783253.87226.80329313253&type=1&theater

照片的ID为10151690351123254
页面的ID为80329313253

post_id为80329313253_10151690351363254

那么您可以请求共享为80329313253_10151690351363254?fields=shares

{
  "shares": {
    "count": 4435
  }, 
  "id": "80329313253_10151690351363254", 
  "created_time": "2013-06-19T18:02:31+0000"
}

或者在Python的情况下,像

fb.request(path='/80329313253_10151690351363254', args={'fields': 'shares'})