2012-04-21 68 views
1

我有一個FB應用程序的腳本和IM試圖使其工作,但我得到這個錯誤:Facebook的API - 致命錯誤:未捕獲的異常:601:分析器錯誤:意外「)」在37位

Fatal error: Uncaught Exception: 601: Parser error: unexpected ')' at position 37. thrown in /home/altin/public_html/apps/empower/empowermix/base_facebook.php on line 658

這裏是我得到錯誤的腳本部分:

$friendsLists = $facebook->api('/me/friends'); 
    foreach ($friendsLists as $friends) 
    { 
    $ile=count($friends); 
    } 

$zapytanie=" (uid=".$friends[0]['id'].") "; 
    for($i=1;$i<$ile;$i++) 
    { 
    $zapytanie.=" or (uid=".$friends[$i]['id'].") "; 
    } 

**$znajomi = $facebook->api(array("method"=> "fql.query", "query"=> "SELECT uid FROM page_fan WHERE ".$zapytanie." AND page_id='".$page_id."'")); //friends w fanpage** 

$sql=mysql_query("SELECT * FROM '".$przedrostek_tab."ludzie' WHERE 'uid'=".$user_info['id']); 
$czy_jest=mysql_fetch_array($sql); 
foreach($znajomi as $k => $w) 
     {$znajomi_weryfikacja[$k]=$w['uid'];} 
if($znajomi_weryfikacja) 
    {$znajomi_weryfikacja=(array_diff($znajomi_weryfikacja, explode("|",$czy_jest['znajomi_start']))); 
    if($czy_jest[0]) 
    {foreach($znajomi_weryfikacja as $k => $w) 
     {$zaproszeni_znajomi.=$w.'|';} 
    mysql_query("UPDATE '".$przedrostek_tab."ludzie' SET 'zaproszeni_znajomi' = '$zaproszeni_znajomi' WHERE 'uid' =".$user_info['id']);} 
    } 

任何人都可以幫助建議一個解決方案嗎?也許你們有些人以前可能遇到過類似的問題。

謝謝。

回答

1

你有嚴重的問題與您的代碼處理FQL查詢的圖形API響應和建設:

  1. $facebook->api('/me/friends')收益由data(含朋友詳細介紹)關聯數組和paging。 (只需要清楚說明這不是朋友列表,而是用戶朋友列表)。
  2. 從API獲取的錯誤與您的查詢包含(uid=)條款中的WHERE子句有關。

你可以簡單地解決您的循環:

$friendsList = $facebook->api('/me/friends'); 
$friends = $friendsList['data']; 
$ile=count($friends); 

$zapytanie=" (uid=".$friends[0]['id'].") "; 
for($i=1;$i<$ile;$i++){ 
    $zapytanie.=" or (uid=".$friends[$i]['id'].") "; 
} 
// ... 

其實,有幾件事情,你應該瞭解FQL和圖形API:

你最好只檢索需要的數據,並使用IN代替多個OR

$response = $facebook->api('/me/friends?fields=id'); 
$friends = $response['data']; 
$uids = array(); 

foreach ($friends as $friend) 
    $uids[] = $friend['id']; 

$zapytanie = 'uid IN ('. implode(',', $uids) .')'; 
// ... 

你也可以做到這一切在單一的FQL查詢

$fql = <<FQL 
SELECT uid FROM page_fan WHERE page_id = {$page_id} AND uid IN (
    SELECT uid2 FROM friend WHERE uid1 = me() 
) 
FQL;