【问题标题】:Facebook graphAPI get id of friend posts with pythonFacebook图形API使用python获取朋友帖子的ID
【发布时间】:2016-12-14 14:53:02
【问题描述】:

我正在使用 python facebook-sdk(修改后的示例代码)从我的 facebook 墙上获取信息。这意味着我的帖子和我朋友的帖子。我的脚本工作正常,直到有超过 2 个朋友的帖子 - facebook 开始对这些帖子进行分组,我无法再获得该帖子的 ID - 只有第一个。

这就是我所说的“分组帖子”: fb grouped wall posts

这是我的代码:

import facebook
import requests


def get_it(post):

    print(post['message'])
    print(post)

access_token = '<mytoken>'
user = 'me'
graph = facebook.GraphAPI(access_token)

posts = graph.get_connections(user, 'feed', limit=20)
print(posts) 

while True:
    try:
        [get_it(post=post) for post in posts['data']]

        posts = requests.get(posts['paging']['next']).json()
    except KeyError:
        break

现在,如果朋友的帖子不超过 2 个且未分组,则打印结果为我提供了成功的结果。 字典看起来像这样 打印(帖子):

 {'paging': {'previous': 'https://graph.facebook.com/v2.5/XXX&access_token=XXX&__paging_token=XXX&__previous=1', 'next': 'https://graph.facebook.com/v2.5/XXX/feed?limit=20&access_token=XXX&__paging_token=XXX'}, 'data': [{'id': 'XXXXXX_XXXX', 'created_time': '2016-03-31T23:58:41+0000', 'message': 'test'}, {'id': 'XXX_XXX', 'created_time': '2016-03-31T23:33:43+0000', 'message': 'hehe'}]}

一切顺利,我可以将帖子 ID 用于 get_it 方法。

但是,一旦有超过 2 个朋友的帖子,它就会被分组并突然 字典中出现了一个新事物“故事”:

'data': [{'created_time': '2016-04-01T02:32:37+0000', 'story': 'XXX wrote on your Timeline.', 'id': '123_456'}, {'created_time': '2016-03-31T23:58:41+0000', 'message': 'test', 'id': '6666_6666'}

“故事”ID 仅适用于分组墙帖中的最后一条评论。

此外,由于某种原因,下一个 dict 字段不会在 get_it() 方法中传递,并且 print(post['message']) 和 print(post) 返回空白结果。

如何解决这个问题,让我在我的墙上以及我的墙上获得所有朋友帖子的 ID 和消息,好吗?我真的迷路了,什么都试过了。谢谢。

【问题讨论】:

  • 这是预期行为,没有计划修改此聚合功能以在聚合发生后返回所有帖子。

标签: python facebook facebook-graph-api


【解决方案1】:

这是 facebook 有意进行的更新,目的是停止自动执行脚本和垃圾邮件。

很遗憾,它不会被回滚。

【讨论】:

    猜你喜欢
    • 2015-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多