添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

如何获得Facebook公共页面内容访问权,只是为了提取数据?

8 人关注

在大学的一个项目中,我需要从相同的Facebook页面中提取数据,如帖子和评论。几个月前一切都很好,但现在要从页面上获取数据,你需要公共页面内容权限。

为了使我的应用程序得到审查,我需要添加。

  • A platform where I'd use the app
  • A screencast that shows "how a person sees this feature used in your app"
  • An explanation of how I'd be using Page Public Content Access to enhance the experience of my app.
  • Privacy Policy URL
  • 作为一个只需要为考试提取一些数据的学生,我没有任何网站/平台来使用这个应用程序。我在Python上使用Facebook Graph API。
    I looked on this website 我想做一个隐私政策生成器,但我没有任何网站或移动应用程序需要使用该API...

    对于我的情况,是否有一些方法可以通过API提取数据而不需要这些要求,或者我最好找到其他的解决方案,如网络刮削?

    1 个评论
    即使我只需要,例如,评论的文本,而没有任何关于评论的用户等信息?
    python
    facebook
    facebook-graph-api
    web-scraping
    facebook-page
    silviacamplani
    silviacamplani
    发布于 2018-07-07
    1 个回答
    huzefausama
    huzefausama
    发布于 2020-05-15
    已采纳
    0 人赞同

    为了能够使用python代码从Facebook上提取数据,你需要在Facebook上注册成为一个开发者,然后拥有一个访问令牌。以下是其步骤。

    前往链接 developers.facebook.com,在那里创建一个账户。 前往 链接 developers.facebook.com/tools/explorer。 进入 "我的应用程序 "下拉 在右上角,选择 "添加新的应用程序"。选择一个 显示名称和类别,然后 "创建应用程序ID"。 再次回到 到同一个链接 developers.facebook.com/tools/explorer。你会看到 "Graph API Explorer",位于右上角的 "My Apps "下面。 从 "Graph API Explorer "下拉,选择你的应用程序。然后,选择 "获取 Token"。从这个下拉菜单中,选择 "获取用户访问令牌"。从出现的菜单中选择 权限,然后选择 "Get Access 令牌"。 转到链接 developers.facebook.com/tools/accesstoken。选择 对应于 "用户令牌 "的 "调试"。 转到 "扩展令牌访问"。 这将确保你的令牌不会每两小时过期。

    访问Facebook公共数据的Python代码。 转到链接 https://developers.facebook.com/docs/graph-api 如果想收集任何可公开获得的数据。见 https://developers.facebook.com/docs/graph-api/reference/v2.7/ .从这个文档中,选择任何你想提取数据的字段,如 "组 "或 "页面 "等。在选择了这些之后,转到代码的例子,然后选择 "facebook graph api",你会得到如何提取信息的提示。这篇博客主要是关于获取事件数据。 首先,导入 "urllib3"、"facebook"、"request",如果它们已经可用。如果没有,请下载这些库。定义一个变量token,并将其值设置为你上面得到的 "用户访问令牌"。

    token= ‘aiufniqaefncqiuhfencioaeusKJBNfljabicnlkjshniuwnscslkjjndfi’
    

    获得事件列表。 现在要找到任何搜索词的事件信息,例如 "诗歌",并将这些事件的数量限制在10000个。

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

    这将提供一个在Facebook上创建的、名称中带有 "诗歌 "字样的所有事件的字典。要获得事件列表,请执行。

    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)