搜索未以任何方式链接到的公共对象(无参与、无邀请)只能通过图谱搜索 API 完成,而不能使用图谱 API 或 FQL。
现在,这是图搜索的唯一文档 https://developers.facebook.com/docs/reference/api/search/。您会发现这个 API 并没有提供太多的可能性,所以如果您想实现您的目标,您将不得不拼凑一些东西。没有任何直接的方法可以做到这一点。
如果我们收集有关事件的信息,这几乎就是我们所拥有的一切:
搜索类型
Events:
Fields
您可以使用以下命令限制这些搜索返回的字段
?fields= URL 参数,与阅读其他内容时的方式相同
对象。例如,要仅获取事件的名称,您可以执行以下操作
下列的:
活动名称:
Time
在搜索公共帖子或用户动态消息上的帖子时,您
可以使用“since”、“until”和“limit”对结果进行分页
参数。自从和直到都接受unix时间戳。寻呼时
回到过去,您应该将 except 与 limit where 结合使用
til是最后一个created_time字段的unixtime值
您之前的查询返回的对象。当时间向前翻页时
你应该将since设置为created_time的unixtime值
先前查询返回的第一个对象中的字段。请
请注意,您只能在动态消息中搜索大约 1 到 2 周之前的内容。
接下来要知道的是,结果集由事件组成,这些事件的字段之一包含您要查找的字符串(q=Oslo
)。因此,“Oslo”可能出现在消息、描述中,幸运的是出现在位置字段中,不幸出现在时区字段中。
然后,您必须“手动”过滤结果。您可能只搜索包含“Oslo”的事件,然后检查该位置是否确实包含“Oslo”。或者,如果您想轻松查找具有特定位置的事件,我建议您搜索格式为的字符串"City, Country"
,因为这就是 Facebook 格式化城市的方式。所以你可能会这样做:
search?fields=location&q="Oslo, Norway"&type=event&since=1356994800
Where 1356994800
是从那时起您想要检索事件的unix时间。
可能的结果:
{
"data": [
{
"location": "Oslo, Norway",
"id": "211893915563330",
"start_time": "2022-02-08T00:00:00"
},
{
"location": "Lillestrøm, Norway",
"id": "641379122561097",
"start_time": "2015-09-06T09:00:00+0200"
},
{
"location": "Oslo, Norway",
"id": "1434492323451716",
"start_time": "2014-11-06T20:45:00+0100"
},
{
"location": "Oslo, Norway",
"id": "563423357073321",
"start_time": "2014-09-20"
},
...
{
"location": "Oslo, Norway",
"id": "628230923890648",
"start_time": "2013-01-16T19:00:00+0100"
}
],
}
然后,也许可以使用 Google 地图 API 来查明找到的位置是否确实靠近奥斯陆。 IE。 “挪威利勒斯特罗姆”离它很近。