使用fql获取Facebook事件

use*_*ful 1 facebook facebook-fql facebook-graph-api

尝试使用下面的查询通过fql检索facebook事件.我无法获得除"id"之外的场地细节.

fql?q = SELECT事件中的SELECT名称,描述,pic_small,pic_big,eid,场所,位置(SELECT eid FROM event_member WHERE uid = me())

输出:

{
  "data": [
    {
      "name": "HappyHour",
      "description": "Let's have fun !!!",
      "pic_small": "http://profile.ak.fbcdn.net/static-ak/rsrc.php/v2/yy/r/XcB-JGXohjk.png",
      "pic_big": "http://profile.ak.fbcdn.net/static-ak/rsrc.php/v2/yn/r/5uwzdFmIMKQ.png",
      "eid": ......,
      "venue": {
        "id": .......
      },
      "location": "The Crab Pot Seattle"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

图表api doc说"正在查询事件的地点正在举行.包含以下一个或多个字段:街道,城市,州,邮编,国家,纬度和经度." 但除了场地ID之外,我没有看到任何这些.

我是否需要另外请求绘制API以获取场地位置详细信息?有没有更好的方法来获取一个查询本身的位置详细信息?

cpi*_*lko 6

您可以使用此FQL Multiquery获取事件的位置.

这将获得有关其场地的活动和信息.你必须在你的最后编写一个脚本,将它们组合成可用的东西.

fql?q={
 "event_info":
    "SELECT name,description, pic_small,pic_big, eid,venue,location 
      FROM event WHERE eid IN 
         (SELECT eid FROM event_member WHERE uid = me())", 
  "event_venue":
     "SELECT name, username, page_id, location 
        FROM page WHERE page_id IN 
          (SELECT venue.id FROM #event_info)"
 }
Run Code Online (Sandbox Code Playgroud)

Facebook在4月份的某个时候更改了事件的默认编码.过去常常会返回所有位置数据.从那以后,只id返回了该位置.