我有一个FB应用程序脚本,我试图让它工作,但我收到此错误:
致命错误:未捕获异常:601:分析错误:意外')'在第37位抛出 在第658行的/home/altin/public_html/apps/empower/empowermix/base_facebook.php
以下是我收到错误的脚本部分:
$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']);}
}
有人可以帮忙建议一个解决方案吗?也许你们中的一些人之前可能遇到过类似的问题。
感谢。
答案 0 :(得分:1)
您的代码处理图谱API响应和FQL查询的构建存在严重问题:
$facebook->api('/me/friends')
返回由data
(包含朋友详细信息)和paging
组成的关联数组。 (并且要明确命名这不是朋友列表,而是用户朋友的列表)。(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和Graph 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;