phpfacebookapifacebook-fqlfql.multiquery

Username is not a member of the user table facebook api


For last few years I was using FQL of Facebook in which i gathered data about last comments by fans on one of my pages. To do that I was forced to use 2 tables joins. I could do that with fql.multiquery help.

Small code of this:

$query1 = "SELECT source_id, post_id, created_time , actor_id, target_id, message FROM stream WHERE source_id = ".$page_id." AND actor_id != ".$page_id." 
ORDER BY created_time DESC
LIMIT 3";        
$query2 = "SELECT username, uid, first_name, last_name FROM user WHERE uid in (SELECT actor_id FROM #query1)";

$multiQuery = array
(
   "query1" => $query1,
   "query2" => $query2,
);

$param = array(       
   'method' => 'fql.multiquery',       
   'queries' => $multiQuery,       
   'callback' => '');       
$queryresults = $facebook->api($param);

Today i got the error "username is not a member of the user table Facebook API".

On Facebook i have found that soon ( in April ), API 2.0 will be shut down. And 2.1 FQL is deprecated.

I want to fix this in easy way.

Any information will be helpful.


Solution

  • It's correct that the username field is deprecated with the use of the Graph API v2.0 and higher. I'd recommend to use the uid field instead.

    The problems are that you're using the wrong endpoint with your FQL query. fql.multiquery resolves to the old REST API, which will be deprecated on April 30th, 2015.

    The regular "new" FQL endpoint in the Graph API is /fql?q={query}, and you can use the Batch API to trigger multiple requests at once. If you've got a v2.0 app, you can use FQL until August 7th, 2016.

    See