如何使用Graph API获取Facebook群组发布的所有内容

时间:2014-04-04 16:27:11

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

我是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调用?

3 个答案:

答案 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...