当用户登录时,Facebook api 是否提供用户的当前位置(纬度和经度)?如果是,那我怎么得到它?https://graph.facebook.com/me/仅提供用户相关数据,而不提供当前位置。请帮我得到这个。
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>
}
}
]
}
是的,可以使用 facebook FQL 查询。请参考以下链接 https://developers.facebook.com/docs/reference/fql/standard_user_info/
如果您想在用户登录时通过 Facebook api 根据其个人资料详细信息查找用户的位置(纬度和经度)?然后按照这个:
下载https://github.com/facebook/facebook-php-sdk 并从 src 复制所有文件并放入您的项目文件夹并将其重命名为 php-sdk
你的代码文件(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
)
)
)