如何使用c#获得所有Facebook页面类别和区域?

本文关键字:区域 Facebook 何使用 | 更新日期: 2023-09-27 18:03:02

我的应用程序需要向用户显示所有可用的页面类别,以便他可以选择关注和/或喜欢哪些页面。是否有任何方法使用c#中的api来获得所有类别?

我还需要得到所有可用的区域在Facebook使用的位置和/或家乡等。

如何使用c#获得所有Facebook页面类别和区域?

经过一番研究,这似乎是不可能的。Facebook FQL需要一个where子句来搜索页面。这意味着您需要提供以下内容之一:关键字、page_id、名称或用户名。由于您似乎没有这些字段中的任何一个,或者更具体地说,您想要所有字段,因此这些字段对您来说不重要。综上所述:select categories from pages不是有效的FQL,它有一个where子句。例子:

select categories from pages where page_id = x
select categories from pages where keyword = x
select categories from pages where name = x
select categories from pages where username = x

这对我来说似乎很奇怪,因为如果导航到https://www.facebook.com/pages,该站点肯定能够枚举可用的页面。如果您只是对站点上的所有页面进行枚举,那么您可以基于大规模递归搜索构建自己的类别列表。这将不需要经常执行,并将其本地存储到应用程序中。

为了回答你问题的第二部分,FQL允许搜索带有位置数据标记的帖子(https://developers.facebook.com/docs/reference/fql/location_post),但是这只会返回基于以下4条规则的结果:

  • 你被标记在Post
  • 一个朋友被标记在Post
  • 你撰写了这篇文章
  • 朋友撰写的文章

他们在这里所指的"您"是用于执行查询的OAuth令牌的所有者。同样,我不相信这将导致您能够检索位置列表,因为上面看到的相同的where子句限制。

官方Facebook API部分到此结束。你当然可以依靠基本的网页抓取,类似于Silamril提供的答案。然而,我不确定这是否适用于位置,因为搜索框似乎是一个实时搜索自动完成框。这意味着你必须投入一些东西才能得到一些东西。我建议您查看geoapi提供程序,或者甚至只是简单地抓取一个像http://en.wikipedia.org/wiki/List_of_lists_of_settlements_in_the_United_States这样的wiki页面。像OpenStreetMap这样的地图信息提供者可以以API格式为你提供相同的信息。参见OSM wiki (http://wiki.openstreetmap.org/wiki/Key:place)

您可以使用类似https://gist.github.com/bloudermilk/2173940

的脚本获取所有页面类别