Shr*_*tel 6 location facebook-graph-api
我们得到用户\朋友的位置如下 - >
location = {id = 104048449631599; name = "Menlo Park, California";};
Run Code Online (Sandbox Code Playgroud)
在我们这边,位置分为城市和州.在我们的数据库中,我们存储城市和州是2个不同的列或表.我们正在为美国市场构建应用程序.假设位置名称只有2个组件 - 城市,州名称,这是否安全?使用","作为分隔符.根据我的理解,Id是唯一的,他们的FB服务如果提供id将分别给出城市和州信息.
您需要在请求中获得正确的范围,如下所示
location{location{city,state,country,latitude,longitude,region_id}}
Run Code Online (Sandbox Code Playgroud)
参考: https://developers.facebook.com/docs/graph-api/reference/location/
这是该位置的文档
获取用户位置信息要求 需要 user_location 权限。
Sample Request
curl -i -X GET \
"https://graph.facebook.com/{graph-api-version}/{user-id}?
fields=location{location{city,state,region_id}}&access_token={user-access-token}"
Sample Response
{
"location": {
"location": {
"city": "San Jose",
"state": "CA",
"region_id": 3847
},
"id": "111948542155151" //location-id
},
"id": "{user-id}"
}
Run Code Online (Sandbox Code Playgroud)
基于PHP的代码如下,
// get profile info
$response = $fb->get('/me?fields=email,birthday,location{location{city,state,country,latitude,longitude,region_id}},gender');//public_profile,email,user_birthday,user_location,user_gender
$userNode = $response->getGraphUser();
$email = $userNode->getField('email');
$birthdayNode = $userNode->getField('birthday');
$birthday = $birthdayNode->format('Y-m-d');
$locationNode = $userNode->getField('location');
$location = $locationNode->getField('location');
$city = $location->getField('city');
$state = $location->getField('state');
$country = $location->getField('country');
$latitude = $location->getField('latitude');
$longitude = $location->getField('longitude');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
743 次 |
| 最近记录: |