2013-02-03 84 views
0

我有一個Facebook應用程序,顯示Facebook上的朋友創建的所有事件的計數。我使用FQL返回數字。直到2月1日,它工作正常,我認爲它因爲本月的滾動更改而停止工作,但我一直無法在文檔中找到有關FQL協議的任何信息。這裏是被之前的工作:Facebook PHP SDK FQL不起作用

$timestamp = time(); // Get current Unix time 
$iso8601 = date('c', $timestamp); // Convert unix time to ISO8601 

// FQL Multiquery 
$fql_query = '{"allFriends":"SELECT+uid2+FROM+friend+WHERE+uid1=me()",' 
      .'"allEvents":"SELECT+eid+FROM+event_member+WHERE+uid+IN+(SELECT+uid2+FROM+#allFriends)+AND+start_time>=\''.$iso8601.'\'",' 
      .'"creators":"SELECT+creator+FROM+event+WHERE+eid+IN+(SELECT+eid+FROM+#allEvents)"}' 
      . '&access_token=' . $access_token; 
// Get FQL through Graph API call 
    $fql = $facebook->api('/fql?q=' . $fql_query); 

但現在當腳本運行,我收到此異常:

FacebookApiException: OAuthException: (#601) Parser error: unexpected '{' at position 0.

我應該改變解決?

任何幫助,將不勝感激

回答

0

嗯,我從來沒有想出如何修復的問題多詢問,但我沒有鍛鍊如果有人有相同的問題解決方法。 我不得不做兩個獨立的fql調用,並使用輸出來完成我的任務。下面是代碼:

$timestamp = time(); // Get current Unix time 
$iso8601 = date('c', $timestamp); // Convert unix time to ISO8601 

// FQL Queries 
//Select Events created by user's Friends 
$fql_query = 'SELECT+creator+FROM+event+WHERE+eid+IN+' . 
'(SELECT+eid+FROM+event_member+WHERE+start_time>=\'' . 
$iso8601.'\'+AND+uid+IN+(SELECT+uid2+FROM+friend+WHERE+uid1=me()))' . 
&access_token=' . $access_token; 

$fql = $facebook->api('/fql?q=' . $fql_query); 

// Get friend_count from user table 
$fql_query2 = 'SELECT+friend_count+FROM+user+WHERE+uid=me()' . 
&access_token=' . $access_token; 

$fql2 = $facebook->api('/fql?q=' . $fql_query2); 

我知道這是不是很有效,絕對難看,所以如果任何人有辦法解決我原來的問題,我會很樂意接受的答案。

羅伯特

0

這個工作對我來說:

$fql = 'SELECT current_location FROM user WHERE uid = me()'; 
$result = client->api('/fql', 'GET', ['q' => $fql, 'access_token' => 'access-token-here']);