我是Graph API的新手,并尝试编写一个简单的python脚本,该脚本首先标识用户喜欢的所有页面以及他/她所属的所有组。为此,我使用了以下内容:
To get the groups he has joined:
API: /{user-id}/groups
Permissions req: user_groups
To get the pages he has liked:
API: /{user-id}/likes
Permissions req: user_likes
and
url='https://graph.facebook.com/'+userId+'/likes?access_token='+accessToken +'&limit='+str(limit)
现在我可以在JSON输出中看到组的ID,我想逐个点击它们并获取该组中发布的所有内容(帖子,评论,照片等)。这是可能的,如果可以,我该怎么做?我必须做什么API调用?
答案 0 :(得分:6)
这是一个相当广泛的问题,在问这里之前你应该尝试搜索一下。
无论如何,我会告诉你如何做到这一点。
首先浏览Graph API的官方文档:Graph API Reference。
您将找到可用于获取数据的每个API。例如:/group
,/page
。您将了解哪种access token具有API调用所需的权限。
以下是一些对您有用的API调用 -
获取论坛/页面的帖子 - /{group-id/page-id}/posts
获取帖子{post-id}/comments
获取论坛/网页的照片 - /{group-id/page-id}/photos
等等。一旦您浏览了文档并测试了一些API调用,事情就会非常明确。这很容易!
希望它有所帮助。祝你好运!
答案 1 :(得分:1)
检查API参考。您应该使用feed。
您可以使用/{group-id}/feed
获取该组Post objects的数组。请记住为该组成员包含用户访问令牌。
答案 2 :(得分:1)
以下是使用facepy的示例:
from facepy import GraphAPI
import json
graph = GraphAPI(APP_TOKEN)
groupIDs = ("[id here]","[etc]")
outfile_name ="teacher-groups-summary-export-data.csv"
f = csv.writer(open(outfile_name, "wb+"))
for gID in groupIDs:
groupData = graph.get(gID + "/feed", page=True, retry=3, limit=500)
for data in groupData:
json_data=json.dumps(data, indent = 4,cls=DecimalEncoder)
decoded_response = json_data.decode("UTF-8")
data = json.loads(decoded_response)
print "Paging group data..."
for item in data["data"]:
...etc, dealing with items...