2012-11-30 38 views
-4
$fql_query_url = 'https://graph.facebook.com/' 
    . '/fql?q=SELECT+uid2+FROM+friend+WHERE+uid1=me()' 
    . '&access_token=' . $access_token; 
$fql_query_result = file_get_contents($fql_query_url); 
$fql_query_obj = json_decode($fql_query_result, true); 

foreach ($fql_query_obj['data'] as $row) { 
    echo $row['uid2']; 
    echo ','; 
} 

预期的结果是给我的错误

xxxx,xxxx,xxxx,xxxx,xxx,xxxx 

这是工作,是越来越所有ID逗号分隔 但现在它显示错误

Warning: Invalid argument supplied for foreach() in xxxx.php 

Some1请帮

+0

请正确设置您的问题。 – Tadeck

+1

'print_r($ fql_query_obj)' - 这会告诉你什么? – ThiefMaster

+0

@ThiefMaster:我想问'var_dump($ fql_query_obj)',但是你的选择可以。 – Tadeck

回答

0

尝试

foreach ($fql_query_obj['data'] as $row) { 
    echo $row ; 
    echo ','; 

} 

如果$fql_query_obj是一个二维数组,如果它的一维数组,然后尝试

foreach ($fql_query_obj as $row) { 
    echo $row ; 
    echo ','; 

} 
0

做一个

var_dump($fql_query_obj['data']) 

,并查看结果,以确保您的数据是正确的格式。

这很可能是facebook返回错误或格式不正确的结果。

if(!is_array($fql_query_obj['data'])){ 
    return false; 

什么:你将需要添加逻辑赶上这一点,最有可能的,这样你的foreach循环只有一次您验证该项目是一个数组执行。