簡體   English   中英

Facebook graphAPI使用python獲取朋友帖子的ID

[英]Facebook graphAPI get id of friend posts with python

我正在使用python facebook-sdk(修改后的示例代碼)從Facebook牆獲取供稿。 這就是我的帖子和朋友的帖子。 我的腳本運行良好,直到有2個以上朋友的帖子為止-facebook開始將這些帖子分組,而我不再能夠獲得該帖子的ID-僅是第一個。

這就是“分組帖子”的意思: fb分組牆帖子

這是我的代碼:

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和消息? 我真的迷路了,嘗試了一切。 謝謝。

這是Facebook的有意更新,目的是停止腳本和垃圾郵件的自動化。

不幸的是,它不會回滾。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM