2011-02-24 61 views
1

我想从Facebook获取用户位置。PHP:Facebook的JSON对象

在图形API>用户页面,说:

位置:包含JSON对象名称和ID

我需要的地点名称,我不能得到它。到目前为止,我已经做了:

$loc = $facebook->api('/me', array('fields' => 'location')); 

但我不明白这一点,不知道自己还能做些什么..

由于一吨!

+0

是否有任何东西在$ loc中回来? – Steven 2011-02-24 17:51:16

+0

可能重复的[如何使用PHP的JSON对象与PHP?](http://stackoverflow.com/questions/3394745/how-do-i-use-json-objects-from-facebook-with-php)和[Facebook的API和Json与PHP,如何?](http://stackoverflow.com/questions/4008525/facebook-api-and-json-with-php-how-to) – 2011-02-24 17:52:54

+0

我有权限的API说,而$ loc的打印显示的是ID,但不是名称..也许它不是JSON,但我的PHP :( – user523129 2011-02-24 17:56:04

回答

0

您需要请求“user_location”特权。

如果您使用登录按钮,将其添加到perms参数。

<fb:login-button perms="user_location"></fb:login-button> 

如果你正在使用JavaScript API,将其添加到选项参数:

FB.login(function(response) { 
    if (response.session) { 
     // do stuff 
    } 
}, { perms:"user_location" }); 

你也可以试试这个,看看哪些数据是可用的。

$response = $facebook->api('/me'); 
var_dump($response); 
+0

我已经在登录按钮烫发我的问题是位置名称。打印/我,不显示我的代码只是打印位置ID,非常感谢 – user523129 2011-02-24 18:06:12

+0

有了适当的权限,我在运行代码片段时得到了这个结果:'array('location'=> array('id'=>'location uid', 'name'=>'location name'),'id'=>'user uid')'。我唯一能想到的就是你没有在Facebook中设置位置。 – 2011-02-24 18:19:17

0

确保您拥有正确的权限,如果不先请求他们。