2012-04-21 12 views
1

で、私はそれを動作させるためにしようとFBアプリスクリプトとイムを持っているが、私はこのエラーを取得: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クエリで行うことができます