GadgetsSpec

A iWiW Fejlesztői Wiki wikiből

Az iWiW Gadgets API a következő szabványok egy részét  valósítja meg:


Tartalomjegyzék

Nézetek

  • A canvas view hasznos szélessége 750 pixel.
  • A profile view hasznos szélessége 565 pixel.

Más view jelenleg nem támogatott.

Gadget XML korlátozások

Az iWiWen használható opensocial gadgetek leíró xmljének a Gadget XML reference-ben leírtakon kívül az alábbiaknak kell megfelelni:

Hossz-korlátozások és kötelezőségek

Paraméter Hossz Kötelezőség
Gadget spec xml url 255 kötelező
ModulePrefs[@title] 500 kötelező
ModulePrefs[@title_url] 200 opcionális
ModulePrefs[@author] 100 kötelező
ModulePrefs[@author_email] 50 kötelező
ModulePrefs[@screenshot] 200 opcionális
ModulePrefs[@thumbnail] 200 opcionális
ModulePrefs[@description] 4000 opcionális
ModulePrefs/Icon 200 opcionális

A gadget XML-ben megadható képek méretei

Az egységes megjelenés érdekében a gadget XML-ben metaadatként megadható képek (ikon, screenshot, stb.) a következőknek kell megfelelni:

ModulePrefs/Icon 16x16 az alkalmazás "favikonja"
  • bal oldali menüsávban
  • értesítéseken
ModulePrefs[@thumbnail] 32x32 az alkalmazás ikonja
  • alkalmazás listaelemeken
  • az alkalmazás címsorában
ModulePrefs[@screenshot] 546x(max)800 képernyőkép
  • az alkalmazás hozzáadása/jogosultságai oldalon
promó kép* 380x250 kiemelt alkalmazás promóképe
  • alkalmazás lista elején a kiemelt alkalmazásokon

* A promó kép URLjét a rendszer az alkalmazás thumbnail URLből képezi:

  • ha az url utolsó / utáni része tartalmaz .-ot, az utolsó . elé illeszti a '_promo' karaktereket
  • ha nem, az url vége után illetszti a '_promo' karaktereket
  • pl:
    http://foo.com/bar/baz.png -> http://foo.com/bar/baz_promo.png
    http://foo.com/bar/baz -> http://foo.com/bar/baz_promo

A fenti méretek (ha azt külön nem jelezzük) fix méretek, azaz ha a képméret eltér a fentiektől, az a felületen a megadott méretre torzítva fog megjelenni.

A képek tetszőleges webes fájlformátumban lehetnek (jpg, png, gif). Ikon és thumbnail esetén ha az nem tölti ki a megadott területet (pl. lekerekítettek a szélei) célszerű valamely átlátszóságot támogató formátumot használni (png, gif).

Tudnivalók Proxy és Cache témakörben

Általában ezekről

Nagyon fontos, hogy minden fejlesztő megértse, a cache és proxy működés nem ellene, hanem érte van. Fontosnak tartjuk, hogy a felhasználók körében népszerű alkalmazásoknak ne kelljen hatalmas technológiai hátteret kiépíteni ahhoz, hogy egyszerűbb vagy bonyolultabb funkcióikkal elkápráztassák a nagyérdeműt. Éppen ezért igyekszünk az alkalmazásokat kiszolgáló szerverekről minél több terhet levenni, ezzel mind az iWiW, mind az alkalmazások felhasználói élménye nem a hardver eszközöknek lesz kiszolgáltatva. Bármennyire is bosszantó tehát a cache és proxy működése, kérjük megértéseteket. Azt azonban le kell szögeznünk, hogy célunk mindenképpen a gördülékeny fejlesztés és az akadálytalan alkalmazás működés.

Gadget XML Cache

A GadgetXML eléggé cache-elt. Ezért fontos, hogy soha ne dinamikusan állítsuk elő, az egyes javascript funkciók hajtsák meg az alkalmazást inkább. A GadgetXML Cache azonban egyszerűen, egy gombnyomással kiüthető, ehhez a Fejlesztői Portálon a Vezérlőpult alatt találtok lehetőséget. Bővebben: Az iWiW Fejlesztői Portálról

Proxy - Rewrite

A Gadgetekben definiált View-k HTML tartalmát újraírjuk, az egyes url-eket "proxisítjuk". Ez annyit tesz, hogy minden kép, css, stb. keresztülfut a proxy infrastruktúránkon, ahol az alábbi logika alapján történik a cache:

  • minden tartalmat minimum időre gyorsítótárazunk. homokozóban ez maximum 15 újra 1 perc csak azért, hogy szokjátok, azonban éles környezetben hosszabb idő 1 nap
  • ha letelik a minimum TTL, akkor a kiszoglált header információk alapján dől el, hogy továbbra is cache-ből szolgáljuk ki a tartalmat, bekérdezzen-e a szerver változásért vagy mindenképpen friss verziót kérjen le

Proxy - makeRequest

Erősen javasoljuk, hogy mikor az API-n keresztül külső tartalmakat kérsz le, akkor használd a proxy lehetőségeket, ezzel is védve saját, vagy más érintett oldalak kiszolgálását. Ebben az esetben a TTL megadását Rád bízzuk, a további cache-elés az előzőekben leírtak szerint történik.

Gadget életciklusának eseményei

A rendszer pillanatnyilag 2 esetben küld értesítést az alkalmazások backendje felé:

  • Felhasználó rögzíti magának az alkalmazást (addapp)
  • Felhasználó törli az alkalmazást (removeapp)

Mindkét esetben SignedRequest-et küldd a rendszer. Bövebben: SignedRequest és oAuth. Fontos, hogy az url-ek meghívása aszinkron módon történik (azaz nem a felvétel/törlés pillanatában, hanem előfordulhat, hogy egy későbbi időpontban), és a meghívásuk nem garantált (pl. ha a backend nem válaszol a hívásra, vagy hibára fut, nincs garantálva, hogy az iWiW egy későbbi időpontban újrap róbálkozik).

A lifecycle eventekről bővebben itt: OpenSocial Specification - 4.1.7 Lifecycle Events

Támogatott szolgáltatások (feature)

  • settitle
  • flash
  • analytics
  • dynamic-heigth
  • views
  • tabs
  • pubsub

OAuth

  • OAuth alapú authentikáció során az egyes tokenek tárolása maximum 2 napig történik meg.

TODO

  • message templetek és limitek
  • os template-ek
  • gadget cache
  • makerequest cache
Személyes eszközök