如何在入住前获得place_id?

时间:2012-08-06 13:08:01

标签: facebook facebook-graph-api checkin

我的应用程序允许用户使用lat,lon和地名登录Facebook。但我不知道如何处理“地方”参数。

有没有办法获得或创建一个?

2 个答案:

答案 0 :(得分:6)

每个可检查的地方必须有有效的地方Facebook页面。

place参数接收Place Facebook页面的page_id

例如,page_id 104999729569954 Place Facebook Page http://www.facebook.com/pages/Nanyang-Polytechnic/104999729569954


如果您的应用程序允许您的用户根据其当前位置进行签入

1)使用Google Map的Geolocation等外部地图服务获取用户当前位置的坐标(lat& lon)。

Google地图返回的坐标集与Facebook自己的坐标集不同。

2)要解决此问题,请执行FQL查询以查找Facebook坐标与Google Map坐标最接近的匹配。

SELECT page_id,latitude,longitude FROM place WHERE distance(latitude, longitude, "LAT_HERE", "LON_HERE") < 250

250指的是它将在其中搜索的半径(m),它可以达到50000

3)现在你有了page_idlatitudelongitude。将page_id分配到place参数中。将latitudelongitude分配到coordinates参数中。然后,您就可以发布签到。

您可以参考我在此处发布的发布签到示例。 Facebook - Publish Checkins using PHP SDK/JavaScript SDK


如果您的应用程序允许您的用户根据地名列表或图片库列表中的选择进行签名(在游戏中等)

您只需要找到每个地方的page_id并将它们绑定到相应的地名或图片。


<强>文档

页面FQL - http://developers.facebook.com/docs/reference/fql/page/

Checkins API - http://developers.facebook.com/docs/reference/api/user/#checkins

答案 1 :(得分:1)

也许这就是你想要的。 打开图形浏览器只需用任何Facebook页面URL替换URL

fql?q=SELECT id FROM object_url WHERE url="https://www.facebook.com/LegendCinema"