[英]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.