我的应用程序允许用户使用纬度、经度和地名登录 Facebook。但是我不知道如何处理“place”参数。
有没有办法获得或创建一个?
最佳答案
每个可检查的地方都必须有一个有效的地方 Facebook 页面。
place
参数接受 page_id
的地方 Facebook 页面。
例如,page_id
Place Facebook 页面的 104999729569954 http://www.facebook.com/pages/Nanyang-Polytechnic/104999729569954
如果您的应用允许您的用户根据他们当前的位置签到
1) 使用外部 map 服务,例如 Google Map 的 Geolocation 获取用户当前位置的坐标(纬度和经度)。
从 Google map 返回的坐标集与 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_id
, latitude
和 longitude
.分配 page_id
进入place
范围。分配 latitude
和 longitude
进入coordinates
范围。然后您将能够发布签到。
您可以引用我在这里发布的发布 checkin 示例。 Facebook - Publish Checkins using PHP SDK/JavaScript SDK
如果您的应用程序允许您的用户根据地名列表或图片库中的选择进行签到(在游戏或其他方面)
您只需要找到 page_id
每个地方的名称并将它们绑定(bind)到各自的地名或图像。
文档
页面 FQL - http://developers.facebook.com/docs/reference/fql/page/
签到 API - http://developers.facebook.com/docs/reference/api/user/#checkins
关于facebook - 如何在checkin前获取place_id?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11828940/