Reputation: 11609
I have just put implemented Facebook connect on my web-site using the JavaScript SDK. Now I would like to process an fql query.
So I have two questions:
Is it possible using only JavaScript fql as "SELECT id, name FROM user WHERE uid IN (SELECT uid1 FROM friends WHERE uid2=me())
" ?
Because when I tried some PHP SDK code using the facebook doc
PHP:
$app_id = 'MY_ID';
$app_secret = 'MY_APP_SECRET';
$my_url = 'POST_AUTH_URL';
$code = $_REQUEST["code"];
$_REQUEST["code"]
is quite normally not recognized and I don't know what is the "'POST_AUTH_URL'
" because I didn't use the PHP SDK to process the Facebook-connect. Does anyone have an idea?
Upvotes: 1
Views: 10857
Reputation: 321
Sorry I can't comment yet but to clarify this helpful answer; what worked for me was formatting the FQL API call the same way I would a Graph API call with {fields: "ex1,ex2"}:
var fqlRequest = "SELECT name FROM user WHERE uid = me()";
FB.api("/fql",{q:fqlRequest}, function(response){
// do cool stuff with response here
});
Note that I did NOT have to URL encode the string and it worked fine for me (I had used
encodeURI(fqlRequest)
before and it returned an unexpected %
error).
Also remember to quote literals if you use them:
var id = "1234567890";
var fqlRequest = "SELECT name FROM user WHERE uid = ' " + id + " ' ";
Upvotes: 0
Reputation: 96250
Using method: 'fql.query'
is part of the deprecated REST API.
A better, future-proof way IMHO is to send your queries against the Graph API:
FB.api("/fql?q={your urlencoded query}", callback() { … } );
Upvotes: 14
Reputation: 47966
Using the JavaScript SDK you can easily execute an FQL query -
FB.api(
{
method: 'fql.query',
query: 'SELECT name FROM user WHERE uid=me()'
},
function(response) {
alert('Your name is ' + response[0].name);
}
);
Don't forget to request all the permissions you need before executing any queries...
Reference - https://developers.facebook.com/docs/reference/javascript/
Upvotes: 9