0

当用户登录时,Facebook api 是否提供用户的当前位置(纬度和经度)?如果是,那我怎么得到它?https://graph.facebook.com/me/仅提供用户相关数据,而不提供当前位置。请帮我得到这个。

4

3 回答 3

3

在浏览了https://developers.facebook.com/docs/reference/fql/user facebook 文档后,我得到了当前位置的经纬度。为此,我们需要触发一个查询,该查询将使用用户的访问令牌从用户表中选择当前位置。

FQL(Facebook 查询语言):

https://graph.facebook.com/fql?q=SELECT current_location FROM user WHERE uid=me()& access_token=xxxxx

回复:

{
"data": [
  {
     "current_location": {
        "city": <city name>,
        "state": <state name>,
        "country": <country name >,
        "zip": <zip code>,
        "latitude": <latitude>,
        "longitude": <longitude>,
        "id": <location id>,
        "name": <address>
     }
  }
]
}
于 2013-10-11T06:11:40.343 回答
0

是的,可以使用 facebook FQL 查询。请参考以下链接 https://developers.facebook.com/docs/reference/fql/standard_user_info/

于 2014-03-13T04:19:38.513 回答
0

如果您想在用户登录时通过 Facebook api 根据其个人资料详细信息查找用户的位置(纬度和经度)?然后按照这个:

  1. 下载https://github.com/facebook/facebook-php-sdk 并从 src 复制所有文件并放入您的项目文件夹并将其重命名为 php-sdk

  2. 你的代码文件(index.php)

    require_once('php-sdk/facebook.php');

    $config = array('appId' => 'YOUR_APP_ID',

    '秘密' => 'YOUR_SECRET_KEY',

    'allowSignedRequest' => false // 可选,但对于非画布应用程序应设置为 false );

    $facebook = 新的 Facebook($config);

    $user_id = $facebook->getUser();

    $user_profile = $facebook->api('/me','GET');

    $query = 'SELECT current_location FROM user WHERE uid = me()';

    $response = $facebook->api(array('method' => 'fql.query', 'query' => $query));

    print_r($response);

输出:

Array
(
    [0] => Array
        (
            [current_location] => Array
                (
                    [city] => Test
                    [state] => Test
                    [country] => Test
                    [zip] => 
                    [latitude] => 53.0833
                    [longitude] => 92.6667
                    [id] => 4555555878787887
                    [name] => Test
                )

        )

)
于 2014-03-12T14:05:29.803 回答