如何获取 Facebook Public 页面内容访问权限以提取数据?

How to get the Facebook Public Page Content Access just to extract data?

对于大学的一个项目,我需要从相同的 Facebook 页面中提取帖子和评论等数据。几个月前一切都很好,但现在要从页面获取数据,您需要 Public 页面内容访问权限。

为了让我的应用得到审核,我需要添加:

作为一名只需要为考试提取一些数据的学生,我没有任何 website/platform 可以使用该应用程序的地方。我在 Python.
上使用 Facebook Graph API 我在 this website 上寻找隐私政策生成器,但我没有任何网站或移动应用程序可以使用 API...

对于我的情况,有没有什么方法可以在没有这个要求的情况下通过 API 提取数据,或者我最好找到其他解决方案,例如网络抓取?

为了能够使用 python 代码从 Facebook 提取数据,您需要在 Facebook 上注册为开发人员,然后拥有访问令牌。这是它的步骤。

Go to link developers.facebook.com, create an account there. Go to link developers.facebook.com/tools/explorer. Go to “My apps” drop down in the top right corner and select “add a new app”. Choose a display name and a category and then “Create App ID”. Again get back to the same link developers.facebook.com/tools/explorer. You will see “Graph API Explorer” below “My Apps” in the top right corner. From “Graph API Explorer” drop down, select your app. Then, select “Get Token”. From this drop down, select “Get User Access Token”. Select permissions from the menu that appears and then select “Get Access Token.” Go to link developers.facebook.com/tools/accesstoken. Select “Debug” corresponding to “User Token”. Go to “Extend Token Access”. This will ensure that your token does not expire every two hours.

Python 访问 Facebook 的代码 Public 数据: 转到 link https://developers.facebook.com/docs/graph-api if want to collect data on anything that is available publicly. See https://developers.facebook.com/docs/graph-api/reference/v2.7/。从此文档中,选择您想要从中提取数据的任何字段,例如“组”或“页面”等。在 select 编辑这些代码后转到代码示例,然后 select “facebook graph api”,您将获得有关如何提取信息的提示。这个博客主要是关于获取事件数据。 首先,导入‘urllib3’、‘facebook’、‘requests’(如果它们已经可用)。如果没有,请下载这些库。定义一个变量令牌并将其值设置为您在上面获得的“用户访问令牌”。

token= ‘aiufniqaefncqiuhfencioaeusKJBNfljabicnlkjshniuwnscslkjjndfi’

正在获取事件列表: 现在要查找任何搜索词“诗歌”的事件信息,并将这些事件的数量限制为 10000:

graph = facebook.GraphAPI(access_token=token, version = 2.7)
events = graph.request(‘/search?q=Poetry&type=event&limit=10000’)

这将给出在 Facebook 上创建的所有事件的字典,其名称中包含字符串“Poetry”。要获取事件列表,请执行:

eventList = events[‘data’]

正在从上面提取的事件列表中提取事件的所有信息: 通过

获取列表中第一个事件的EventID
eventid = eventList[1][‘id’]

对于此 EventID,获取所有信息并设置一些稍后将使用的变量:

event1=graph.get_object(id=eventid,fields=’attending_count,can_guests_invite,category,cover,declined_count,description,end_time,guest_list_enabled,interested_count,is_canceled,is_page_owned,is_viewer_admin,maybe_count,noreply_count,owner,parent_group,place,ticket_uri,timezone,type,updated_time’)
attenderscount = event1[‘attending_count’]
declinerscount = event1[‘declined_count’]
interestedcount = event1[‘interested_count’]
maybecount = event1[‘maybe_count’]
noreplycount = event1[‘noreply_count’]

获取所有参加活动的人的列表并将响应转换为 json 格式:

attenders = requests.get(“https://graph.facebook.com/v2.7/"+eventid+"/attending? 
access_token="+token+”&limit=”+str(attenderscount)) 
attenders_json = attenders.json()

获取活动的管理员:

admins = requests.get(“https://graph.facebook.com/v2.7/"+eventid+"/admins? 
access_token="+token)
admins_json = admins.json()

同样,如果需要,您可以提取该事件​​的其他信息,例如 photos/videos/feed。 转到 https://developers.facebook.com/docs/graph-api/reference/event/ 并查看文档中的“边缘”部分。