FQL
Овај чланак је започет или проширен кроз пројекат семинарских радова. Потребно је проверити превод, правопис и вики-синтаксу. Када завршите са провером, допишете да након |проверено=. |
FQL (Facebook Query Language) спада у групу упитних језика који омогућава Facebook корисницима да користе SQL[1] упите за податке изложене од Graph API-ја. FQL пружа напредне функције које нису доступне у Graph API-ју.[2] Подаци враћени од FQL упита су по подразумеваном JSON формату. Документација о FQL је јавно доступна свима те овај језик може свако да научи.
FQL нуди могућност претраге јавно доступних података на Facebook-у, а ефекат је исти као при коришћењу Graph API-ја. Међутим, FQL се неће користити после верзије 2.0 Facebook API-а, након чега се програмерима препоручује да пређу на коришћење Graph API-а.
Карактеристике
[уреди | уреди извор]Иако су исти подаци доступни путем неке од API функција, овако је омогућен једноставнији, селективни и бржи приступ. Нема потребе за тражењем одговараћује API функције, дохватања свих доступних података из одређене категоије и затим програмске обраде и селекције корисних података. Овако на јединствен начин имамо приступ свему и уз мало сложеније упите знатно смањујемо количину података с којом морамо радити.
Историја
[уреди | уреди извор]FQL први пут постао јавно доступан у фебруару 2007. године[3]
Упити
[уреди | уреди извор]Упити су следећег облика:
SELECT [поља] FROM [табела] WHERE [услови]
За разлику од SQL-a, FQL омогућава само SELECT упите, без UPDATE и DELETE, такође FROM клаузула мође да саржи само једну табелу што значи да се не може реализовати JOIN. Можете да користите кључну реч IN у клаузулама SELECT и WHERE како бисте радили са угљежденим упитима. У WHERE клаузули могуће је постављати услове везане за индексирана поља, та поља су у списку поља означена са '*'.
FQL поседује:
- могућност обављања оснивних математичких операција
- AND и NOT логичке операторе
- ORDER BY и LIMIT клаузуле(ORDER BY клаузула се додаје на крају упита и може да садржи само једно поље)
За сваки упит који узима uid може се проследити me(), који враћа пријављеног корисника.
Пример:
SELECT name FROM user WHERE uid = me()
Остале доступне функције су:
- now()
- strlen()
- substr()
- strpos()
Пример упита који дохвата све информације о кориснику за активне кориснике и пријатеље:
SELECT uid, name, pic_square FROM user WHERE uid = me()
OR uid IN (SELECT uid2 FROM friend WHERE uid1 = me())
Вишеструки упити
[уреди | уреди извор]Вишеструки упити (енг. multi-query) обрађују серију FQL упита у једном и враћају податке за сваки један по један.
Ова метода узима JSON-енкодиране речнике који се називају „упити“ где појединачни упит користи синтаксу као једноставни упит. Међутим, ова метода омогућава да се праве комплекснији упити. Могу се дохватити подаци у једном упиту и користити у другом, у истом позиву. WHERE клаузула је опциона у другом упиту, пошто се референцира на податке који су већ дохваћени. Да би се референцирали на резултате упита у другом упиту у оквиру истог позива, потребно је у FROM клаузули специфицирати његово име које се наводи након знака #.
На пример, потребно је узети неке податке о кориснику који присуствује неком догађају. Уобичајено би било да се изврше два упита, један за другим, чекајући на резултат првог упит, пошто други упит зависи од података првог. Међутим, са FQL multyquery, могу се оба упита покренути у исто време, резултати се добијају када је потребно, и на тај начин обезбеђују се се боље перформансе него кад се покреће серија упита. Прво је потребно користиит ID и RSVP статус (фр. RSVP - répondez s'il vous plaît, , тј. en please respond, молим одговорите) сваког госта, тако да може да се формулише први упит, query1. Ово се извршава на следећи начин:
"query1":"SELECT uid, rsvp_status FROM event_member WHERE eid=12345678"
Након тога се узимају подаци профила сваког госта (name, URL, и слика), а затим се извршава други упит – query2 – који се референцира на резултате првог упита, query1. Query2 се формулише на следећи начин:
"query2":"SELECT name, url, pic FROM profile WHERE id IN (SELECT uid FROM #query1)"
Ево примера покретања FQL упита:
<?php
$app_id = 'YOUR_APP_ID';
$app_secret = 'YOUR_APP_SECRET';
$my_url = 'POST_AUTH_URL';
$code = $_REQUEST["code"];
// auth user
if(empty($code)) {
$dialog_url = 'https://www.facebook.com/dialog/oauth?client_id='
. $app_id . '&redirect_uri=' . urlencode($my_url) ;
echo("<script>top.location.href='" . $dialog_url . "'</script>");
}
// get user access_token
$token_url = 'https://graph.facebook.com/oauth/access_token?client_id='[мртва веза]
. $app_id . '&redirect_uri=' . urlencode($my_url)
. '&client_secret=' . $app_secret
. '&code=' . $code;
// response is of the format "access_token=AAAC..."
$access_token = substr(file_get_contents($token_url), 13);
// run fql query
$fql_query_url = 'https://graph.facebook.com/'[мртва веза]
. 'fql?q=SELECT+uid2+FROM+friend+WHERE+uid1=me()'
. '&access_token=' . $access_token;
$fql_query_result = file_get_contents($fql_query_url);
$fql_query_obj = json_decode($fql_query_result, true);
// display results of fql query
echo '
' print_r("query results:"); print_r($fql_query_obj); echo '';
// run fql multiquery
$fql_multiquery_url = 'https://graph.facebook.com/'[мртва веза]
. 'fql?q={"all+friends":"SELECT+uid2+FROM+friend+WHERE+uid1=me()",'
. '"my+name":"SELECT+name+FROM+user+WHERE+uid=me()"}'
. '&access_token=' . $access_token;
$fql_multiquery_result = file_get_contents($fql_multiquery_url);
$fql_multiquery_obj = json_decode($fql_multiquery_result, true);
// display results of fql multiquery
echo '
' print_r("multi query results:"); print_r($fql_multiquery_obj); echo ''; ?>
Намена
[уреди | уреди извор]FQL се користи за упите над табелама Facebook-a које су отворене, као што су:
Име | Опис |
---|---|
album | албум фотографија или видео снимака предстаљене у FQL |
application | апликација представљена у FQL |
apprequest | FQL табела која садржи послате захтеве преко апликације |
comment | Коментари у вези са једним или више фејсбук коментарима
представљени у FQL |
cookies | Списак колачића који су постављени за корисника у FQL |
developer | FQL табела која представља улоге корисничке апликације
у App Dashboard. Уместо тога користите app_role |
event | FQL табела која даје информације о догађају |
event_member | Садржи листу учесника за догађај у FQL |
family | Садржи детаљне информације о корисниковој породици |
friend | FQL табела која се може користити да врати списак
корисникових пријатеља или да покаже да ли су два корисника пријатељи |
friendlist_member | FQL табела која показује да ли је корисник
члан листе пријатеља |
friend_request | FQL табела која показује нерешене захтеве од
стране корисника тренутне сесије |
group | Група којој корисници могу да се придруже |
group_member | Садржи листу чланова за групе у FQL |
insights | FQL табела која садржи статистичке податке о пријавама,
страницама и доменима са 30 или више веза. |
like | FQL табела која даје ИД кориснка који је лајковао објекат
(видео, слику, белешку, везу или албум) |
link | FQL табела која садржи линкове које је корисник објавио |
link_stat | FQL табела која показује како су корисници у интеракцији
на Фејсбуку са датим линком |
mailbox_folder | FQL табела која садржи информације о корисниковом
поштанском сандучету |
message | Информација о порукама представљена у FQL. Да бисте приступили
овој табели потребан вам је приступни токен са read_mailbox дозволама |
notification | Тренутне нотификације корисника представљене у FQL |
offer | FQL табела која даје информације о понудама са објава страница |
page | За приступ на нивоу држава користите page_fans_country
и page_storytellers_by_country |
Види још
[уреди | уреди извор]
Референце
[уреди | уреди извор]- ^ „Facebook Query Language (FQL)”. Documentation. Facebook. Архивирано из оригинала 17. 07. 2011. г. Приступљено 16. 12. 2010.
- ^ „About Facebook-FQL”. Tag info. Stack Overflow. Приступљено 18. 5. 2012.
- ^ Steinberg, Ari (26. 2. 2007). „Facebook Query Language (FQL)”. The Facebook Blog. Facebook. Приступљено 18. 5. 2012.
Литература
[уреди | уреди извор]- Facebook http://developers.facebook.com/docs/reference/fql Архивирано на сајту Wayback Machine (1. јун 2014)
Спољашње везе
[уреди | уреди извор]- Званични сајт компаније
- Сајт за прављење апликација
- 10 најбољих Фејсбук апликација
- Статистика Фејсбук апликација