Spēles
Saņem aktuālāko informāciju savā e-pastā!
API dokumentācija
Integrācijas
Cita informācija
API dokumentācija angliski
Vadlīnijas draugiem.lv aplikāciju izstrādātājiem
Daži svarīgi ieteikumi draugiem.lv aplikāciju izstrādātājiem. Viss tālāk rakstītais ir rakstīts ar domu, ka jūs izstrādē izmantojat HTML/JS/CSS/PHP/MySQL, taču praktiski viss tas pats attiecas arī uz citām tehnoloģijām, atliek vien piemeklēt vajadzīgās paralēles un uzstādījumus.
Saturs
1. Servera uzstādījumi
1.1. Globāli servera uzstādījumi
allow_url_fopen - nepieciešams draugiem.lv PHP bibliotēkas darbībai
1.2. Lietotājiem pieejamai aplikācijas versijai nepieciešamie PHP uzstādījumi
Parastam lietotājam pilnīgi neko neizsaka jūsu PHP kļūdu ziņojumi:
Missing Controller Error: LacistestController could not be found. Error: Create the class LacistestController below in file: app/controllers/lacistest_controller.php <?php class LacistestController extends AppController { var $name = 'Lacistest'; } ?> Notice: If you want to customize this error message, create app/views/errors/missing_controller.ctp
Lietotājiem pieejamā vidē kļūdu ziņojumus ir jāpaslēpj, taču tajā pašā laikā ir jānodrošina, ka jūs saņemat un analizējat informāciju par notikušajām kļūdām:
display_errors = Off log_errors = On
2. Aplikācijas drošība
2.1. Aizsardzība pret CRSF (Cross Site Request Forgery).
Aplikācijām ir jānodrošina, ka tās darbības nav iespējams izsaukt bez lietotāja līdzdarbības - gan GET, gan POST pieprasījumiem līdzi jāpadod papildus mainīgie, kas mainās katram lietotājam vienas sesijas ietvaros un tiek pārbaudīti servera pusē. Tas palīdz izvairīties no situācijas, kad lietotāji ievieto slēptus iframe ārpus draugiem.lv vides, kur ar javascript tiek veikta formu datu nosūtīšana uz attiecīgo adresi. Piemēram balsošana par kādu lietotāju konkursā, balsotājam par to nemaz neuzzinot:
<html> <head> </head> <body onload="document.getElementById('forma').submit()"> <form id="forma" action="https://lapa.lv/konkursi/uzvaretajs_sanem_iphone4/" method="post"> <input type="hidden" name="uid" value="123456" /> <input type="hidden" name="balsot" value="balsot"/> </form> </body> </html>
Aplikācijas pusē pievienojot šādai balsojuma formai papildus hash mainīgo, kas mainās katram lietotājam sesijas ietvaros, šāda veida balsojumi vairs nav iespējami. Jebkāda veida balsojumiem ir jādarbojas tikai kā POST pieprasījumiem.
3. BUJ draugiem.lv lapu aplikāciju izstrādē
Šajā nodaļā apkopoti vairāki no biežāk uzdotajiem izstrādātāju jautājumiem.
3.1. Aplikācijas novietojums - sākumlapa vai lapas sadaļa
Lapu aplikācijas var novietot gan konkrētās lapas sākumlapas vienā no kolonām, gan arī kā lapas sadaļu. Lai aplikācija varētu zināt, kurā no pozīcijām tā ir novietota, var izmantot iframe parametros padoto kolonas platuma mainīgo GET[dr_appw]:
Vērtība | Aplikācijas novietojums |
---|---|
240 | Sākumlapas šaurā (labā) kolona |
480 | Sākumlapas platā (centrālā) kolona |
730 | Lapas sadaļa |
3.2. Piekļuve lietotāju datiem
Atšķirībā no parastajām draugiem.lv aplikācijām, lapu aplikācijas pēc noklusējuma darbojas anonīmā režīmā. Tas nozīmē, ka atverot lapu, kurā būs ievietota aplikācija, lietotājam netiks piedāvāts atļaut piekļuvi saviem datiem. Tā rezultātā - ja lietotājs nebūs jau iepriekš atļāvis piekļuvi saviem datiem, pirmais izsaukums uz sesijas pārbaudi kā likums atgriezīs false:
$draugiemApi = new DraugiemApi(APPID, APIKEY); $session = $draugiem->getSession();
Šajā gadījumā jums ir jāparāda aplikācijas "landing" lapa, kurā lietotājs ar JavaScript izsaukuma draugiemAuthorize() palīdzību var atļaut piekļuvi saviem datiem: https://www.draugiem.lv/applications/dev/iframe/#aplikacijas-autorizacijas-loga-atversana
Draugiem.lv lapu aplikācijas var ievietot arī kā bloku lapas sākumlapā. Šāds solis ir veikts apzināti, lai izvairītos no situācijām, kad lietotājam jau atverot lapu tiek prasīta piekļuve viņa datiem.
3.3. Aktivitāšu pievienošana
Arī draugiem.lv lapu aplikācijām ir iespēja pieslēgt aktivitātes, taču atšķirībā no parastajām draugiem.lv aplikācijām, pievienojot lapu aktivitāti kā papildus parametrs līdzi ir jāpadod arī lapas identifikators, kuru jūs saņemat pie pirmās lapas atvēršanas GET parametrā api_page_id. Lai to izmantotu vēlāk, visticamāk tas ir jāsaglabā kādā sesijas mainīgajā.
Aktivitātes pievienošanas piemērs draugiem.lv lapu aplikācijā:
$draugiemApi = new DraugiemAPI(APPID, APIKEY); $response = $draugiemApi->apiCall('add_activity', array('text'=>$text,'prefix'=>$prefix, 'link'=>$link, 'page_id' => $page_id));
Link parametrā ir jāpadod tikai tā daļa, kas seko aiz lapas adreses.
Lai savai aplikācijai pieslēgtu aktivitātes, rakstiet uz api@draugiem.lv
3.4. Flash satura ievietošana
Lai ievietotais flash saturs (baneri, spēles, u.c.) nekonfliktētu ar draugiem.lv vidi, nepieciešams uzstādīt flash objekta "wmode" parmetram vērtību "transparent".
3.5. Manu lapu aplikāciju neredz parasti apmeklētāji
Lapu aplikācijām šobrīd ir nepieciešams apstiprinājums, lai to redzētu citi draugiem.lv lietotāji. Lai iegūtu lapu aplikācijas apstiprinājumu, rakstiet uz api@draugiem.lv, vai skype: ingus.rukis
3.6. Aplikācijas korekta aizvēršana tehnisku problēmu gadījumā
Gadījumā, ja jūsu aplikācijai ir tehniskas problēmas, kuru rezultātā jūs nevarat nodrošināt korekta kļūdas ziņojuma parādīšanu aplikācijas līmenī (piemēram, nestrādā hostings), jāizmanto iespēja aizvērt aplikāciju draugiem.lv pusē:
Šī iespēja ir pieejama aplikācijas uzstādījumu labošanas skatā.
4. Fināls
Šis ir tikai vadlīniju pirmais uzmetums, noteikti to vēl papildināsim.