A mai nap a facebook kiadott egy frissítést a javascript alapú keretének. Sajnos az SDK-ban egy hiba található, így a legtöbb alkalmazás ami ezt használja, nem működik. A hiba javítása a facebook oldaláról folyamatban van, viszont egy kis ügyeskedéssel mi magunk is orvosolhatjuk a hibát.
A hiba eredendő forrása a facebook all.js fájla. Ezt kell kicserélnünk egy régebbi verzóra. Sajnos az interneten nem lehet találni régebbi verzót, ami ne lenne legalább 1,5 éves, így a javítást magunknak kell elkészíteni.
Első lépések
Töltsük le a facebook js.all fájlt. Ezt egyszerűen böngészőből is megtehetjük. Fontos megjegyeznünk, hogy érdemes a letöltés után átkonvertálni a a fájlt egy "full" formátumra, mivel a fent lévő fájl "min" formátumú.
Ha ez megtörtén, akkor nyissuk meg a kedvenc editorunkkal az állományt és az alábbi kódrészletet módosítsuk rajta.
Erre kell kicserélni:
//v554319
if (typeof w == 'function') return w.apply(r, u);
Ezt kell kicserélni
//v554488
//if (s !== 'bind' && typeof w == 'function') return w.apply(r, u);
Integrálás
A fájlt feltöltjük a szerverünkre és innen fogjuk hívni. Ezek után az alkalmazásunkban ahol behívjuk a facebookról az all.js fájlt, kicseréljük egy lokális hívásra.
pl.:
<script language="javascript" srcall.js"></script>
Ezek után az alkalmazásunk tökéletesen működni fog.
Megjegyzés
Figyeljük a facebook bug reportokat, mert a hibát javítani fogják és akkor érdemes visszaállni a már megszokott online rendszerre.