Facebook API-返回好友列表(PHP数组)
我正在尝试返回一个使用Facebook应用程序而不使用PHP SDK的用户的好友列表。 我已设法返回用户名、性别等,而不使用验证码。我现在正试图返回一个用户朋友的姓名列表,目前为止我所能做的就是打印数组,我似乎不能只打印姓名,因为它的布局与用户名、性别等不同。我通过以下操作实现了回应:Facebook API-返回好友列表(PHP数组),php,facebook,facebook-graph-api,Php,Facebook,Facebook Graph Api,我正在尝试返回一个使用Facebook应用程序而不使用PHP SDK的用户的好友列表。 我已设法返回用户名、性别等,而不使用验证码。我现在正试图返回一个用户朋友的姓名列表,目前为止我所能做的就是打印数组,我似乎不能只打印姓名,因为它的布局与用户名、性别等不同。我通过以下操作实现了回应: $user->name 但当我尝试在朋友列表中使用它时,它不起作用,也没有任何回应,我只是想知道是否有人知道我是如何做到这一点的 使用print\r,我得到以下信息: Array( [0] => A
$user->name
但当我尝试在朋友列表中使用它时,它不起作用,也没有任何回应,我只是想知道是否有人知道我是如何做到这一点的
使用print\r,我得到以下信息:
Array(
[0] => Array ( [name] => Friend's name [id] => x )
[1] => Array ( [name] => Friend's name [id] => x )
[2] =>....)
直到所有的朋友都被列出
上面是每个数组的结构,我认为一个潜在的问题是不是每个人都有一个家乡集,这可能是我收到forEach错误的原因?从Facebook查询特定数据的最佳方法是FQL。检查一下,让我知道这是否是你要找的 我提供的链接上的示例将抓取所有活动用户的朋友。如果您使用该示例作为启动程序(已为您的应用程序填写了所有正确的信息以及有效的访问令牌),则转到显示有
//运行fql query
的区域,并在下一行中将uid2
更改为name
:
fql?q=SELECT+uid2+FROM+friend+WHERE+uid1=me()
将以下内容添加到脚本末尾将把所有朋友的名字填充到名为$names
$r = $fql_multiquery_obj['data'][0]['fql_result_set'];
foreach ($r as $u)
{
$name[count($name)] = $u['name'];
}
这有助于你做你想做的事吗?让我知道:)从Facebook查询特定数据的最佳方法是FQL。检查一下,让我知道这是否是你要找的 我提供的链接上的示例将抓取所有活动用户的朋友。如果您使用该示例作为启动程序(已为您的应用程序填写了所有正确的信息以及有效的访问令牌),则转到显示有
//运行fql query
的区域,并在下一行中将uid2
更改为name
:
fql?q=SELECT+uid2+FROM+friend+WHERE+uid1=me()
将以下内容添加到脚本末尾将把所有朋友的名字填充到名为$names
$r = $fql_multiquery_obj['data'][0]['fql_result_set'];
foreach ($r as $u)
{
$name[count($name)] = $u['name'];
}
这有助于你做你想做的事吗?让我知道:)鉴于这种数组结构,获取所需内容(在php中)非常简单。我建议您阅读php的操作手册 试着这样做:
foreach ($array as $inner_array) {
echo $inner_array['name'] . "<br />";
}
以此类推
更新:
foreach ($json_arr as $key => $var) {
if (!is_array($var)) {
if ($key == 'name') {
echo "Name: " . $var . "<br />";
}
}
else {
if ($key == 'hometown') {
echo "Hometown: " . $var['name'] . "<br />";
}
}
}
您现在看到的不是一个数组,而是一个javascript对象。它被称为JSON:Javascript对象表示法
您需要一个特殊的解析器将其解释为数组:,它是php大于或等于5.2.0时附带的。要使数组关联,必须传递第二个参数,即布尔值,true
。它默认为false
否则。用法示例:
$json = '{ "name": "Name",
"hometown": {
"id": "Hometown_id",
"name": "Hometown"
},
"id": "Friend_id" }';
$json_arr = json_decode($json,true);
foreach ($json_arr as $key => $var) {
if (!is_array($var)) {
if ($key == 'name') {
echo $var . "<br />";
}
}
}
$json='{“name”:“name”,
“故乡”:{
“id”:“家乡id”,
“姓名”:“家乡”
},
“id”:“Friend_id”}';
$json_arr=json_decode($json,true);
foreach($json_arr as$key=>$var){
如果(!is_数组($var)){
如果($key=='name'){
echo$var.“
”;
}
}
}
更新2:
foreach ($json_arr as $key => $var) {
if (!is_array($var)) {
if ($key == 'name') {
echo "Name: " . $var . "<br />";
}
}
else {
if ($key == 'hometown') {
echo "Hometown: " . $var['name'] . "<br />";
}
}
}
foreach($json\u arr as$key=>$var){
如果(!is_数组($var)){
如果($key=='name'){
echo“Name:.$var.”
;
}
}
否则{
如果($key==“家乡”){
echo“家乡:”.$var['name'].“
”;
}
}
}
以上内容应该可以满足您的需要。鉴于这种数组结构,获得所需内容(在php中)非常简单。我建议您阅读php的操作手册 试着这样做:
foreach ($array as $inner_array) {
echo $inner_array['name'] . "<br />";
}
以此类推
更新:
foreach ($json_arr as $key => $var) {
if (!is_array($var)) {
if ($key == 'name') {
echo "Name: " . $var . "<br />";
}
}
else {
if ($key == 'hometown') {
echo "Hometown: " . $var['name'] . "<br />";
}
}
}
您现在看到的不是一个数组,而是一个javascript对象。它被称为JSON:Javascript对象表示法
您需要一个特殊的解析器将其解释为数组:,它是php大于或等于5.2.0时附带的。要使数组关联,必须传递第二个参数,即布尔值,true
。它默认为false
否则。用法示例:
$json = '{ "name": "Name",
"hometown": {
"id": "Hometown_id",
"name": "Hometown"
},
"id": "Friend_id" }';
$json_arr = json_decode($json,true);
foreach ($json_arr as $key => $var) {
if (!is_array($var)) {
if ($key == 'name') {
echo $var . "<br />";
}
}
}
$json='{“name”:“name”,
“故乡”:{
“id”:“家乡id”,
“姓名”:“家乡”
},
“id”:“Friend_id”}';
$json_arr=json_decode($json,true);
foreach($json_arr as$key=>$var){
如果(!is_数组($var)){
如果($key=='name'){
echo$var.“
”;
}
}
}
更新2:
foreach ($json_arr as $key => $var) {
if (!is_array($var)) {
if ($key == 'name') {
echo "Name: " . $var . "<br />";
}
}
else {
if ($key == 'hometown') {
echo "Hometown: " . $var['name'] . "<br />";
}
}
}
foreach($json\u arr as$key=>$var){
如果(!is_数组($var)){
如果($key=='name'){
echo“Name:.$var.”
;
}
}
否则{
如果($key==“家乡”){
echo“家乡:”.$var['name'].“
”;
}
}
}
上面的内容应该可以满足您的需要。您是否有适当的权限?是的,我使用oauth_令牌,我可以打印整个数组,但我只需要名称。您为什么不以php中的正常方式访问数组?对不起,您的意思是什么?您正在做什么来尝试访问这些名称?只是检查一下,但是你使用的是$arr[0]['name']而不是$arr['name']或$arr[0],对吗?你有适当的权限吗?是的,我使用oauth_令牌,我可以打印整个数组,但我只需要名称。你为什么不以php中的正常方式访问数组呢?对不起,你是什么意思?你在做什么来获取这些名字?只是检查一下,但您使用的是$arr[0]['name']而不是$arr['name']或$arr[0],对吗?正是我想要的,只是现在尝试一下,效果非常好。非常感谢!:)抱歉,我刚刚意识到我需要包含一些朋友详细信息,因此无法使用“/me/friends/”,并且必须使用API中的官方URL,该URL以类似数组返回不同的信息。我有一只蜜蜂