Facebook alkalmazásban felmerülő problémák
Sziasztok,
jártas valaki a Facebook alkalmazásokban annyira, hogy kisebb felmerülő problémákban tudna nekem segíteni?
Nem lustaságról van szó folyamatosan olvasom a dokumentációkat, a paramétereket, a tageket, de olyan akadályokba ütköztem, amikre sem a dokumentációkban sem Google-ben semmilyen utalást nem találtam.
Az alkalmazás nagy részt már készen van, csak bizonyos részeiben vannak hibák.
Az első probléma, hogy az alkalmazás saját oldalán (http://apps.facebook.com/alkalmazas/) a beépülő modul (<fb:request-form>) 'Skip' gombja, aminek a szövegén kívül mást nem tudok változtatni, ha rányomok, nem frissiti le a frame-et, hanem a helyére egy Facebook logó jön be, pedig beállitottam, hogy az action paraméter ugyanaz az index.php legyen, mint maga a frame helye. De nem.
Aztán van ugye a Tab fül. Ha valaki elfogadja az alkalmazásodat, és létezik az alkalmazásodnak Tab füle, azt hozzáteheti a Füleihez, és ott is meg lehet jeleníteni mindenféle frissítést, és pl a fent említett <fb:request-form> is elhelyezhető. Láttam alkalmazást, ahol működik.
Nálam errort ír ki:
FBML Error (line 18): unknown tag "fb:serverFbml"
Amit azért nem értek, mert az <fb:name> taget felismeri.
A Like gombot sem ismeri fel (<fb:like>), ugyenezt a hibát kapom.
Az ezen a Tab fülön elhelyezett <fb:request-form> <script> részét beleírva, ami a működésének alapvető része, az egész request-formot nem jeleníti meg.
Ugyancsak a Tab fülön karakterkódolási hibák is vannak, de ezzel még el tudok bibelődni, ez nem a legnagyobb probléma.
Ha ezek bármelyikére valakinek van megoldása, nagyon megköszönném. Nem vagyok rest utánanézni semminek, de ezekre órákon át való keresgélés után sem találtam megoldást.
Köszi, Totti
■ jártas valaki a Facebook alkalmazásokban annyira, hogy kisebb felmerülő problémákban tudna nekem segíteni?
Nem lustaságról van szó folyamatosan olvasom a dokumentációkat, a paramétereket, a tageket, de olyan akadályokba ütköztem, amikre sem a dokumentációkban sem Google-ben semmilyen utalást nem találtam.
Az alkalmazás nagy részt már készen van, csak bizonyos részeiben vannak hibák.
Az első probléma, hogy az alkalmazás saját oldalán (http://apps.facebook.com/alkalmazas/) a beépülő modul (<fb:request-form>) 'Skip' gombja, aminek a szövegén kívül mást nem tudok változtatni, ha rányomok, nem frissiti le a frame-et, hanem a helyére egy Facebook logó jön be, pedig beállitottam, hogy az action paraméter ugyanaz az index.php legyen, mint maga a frame helye. De nem.
Aztán van ugye a Tab fül. Ha valaki elfogadja az alkalmazásodat, és létezik az alkalmazásodnak Tab füle, azt hozzáteheti a Füleihez, és ott is meg lehet jeleníteni mindenféle frissítést, és pl a fent említett <fb:request-form> is elhelyezhető. Láttam alkalmazást, ahol működik.
Nálam errort ír ki:
FBML Error (line 18): unknown tag "fb:serverFbml"
Amit azért nem értek, mert az <fb:name> taget felismeri.
A Like gombot sem ismeri fel (<fb:like>), ugyenezt a hibát kapom.
Az ezen a Tab fülön elhelyezett <fb:request-form> <script> részét beleírva, ami a működésének alapvető része, az egész request-formot nem jeleníti meg.
Ugyancsak a Tab fülön karakterkódolási hibák is vannak, de ezzel még el tudok bibelődni, ez nem a legnagyobb probléma.
Ha ezek bármelyikére valakinek van megoldása, nagyon megköszönném. Nem vagyok rest utánanézni semminek, de ezekre órákon át való keresgélés után sem találtam megoldást.
Köszi, Totti
Tab
fbml
megvárom, míg hazaérsz, aztán majd kérdezek tovább :)
köszi
Azért...
Egyébiránt küldd már el légyszi az alkalmazás címét (sandbox mode off) és a canvas URL-t is, megnézném.
nem várom el
örülök, ha tudsz segíteni
szóval először is, ez egy próba, nem élesben megy semmi, ezért nincs semmi titkolni valóm az apival kapcsolatban:
http://apps.facebook.com/uj-alkalmazasom/
http://www.facebook.com/apps/application.php?id=159263387434584
az a gond, hogy a Tab-ot (Totti-app) önmagában nem tudom hogy lehet iframe-re állítani. Alapból az alkalmazás Facebook Integration - Canvas Type: Iframe-re van állítva. Maga a
http://apps.facebook.com/uj-alkalmazasom/
oldal iframe-esen is működött, ahogy észrevettem, de hogy őszinte legyek nem pontosan értem a különbséget. Annyi világos, hogy egy full saját php oldalt szerkeszthetek, amit a Facebook ezen a címen be-iframe-ez. (Viszont ezzel szemben <fb:...> tag-eket használok a php oldalban.)
A Tab-nál (Totti-app) viszont látom, hogy az oldal részeként tekinti az én Tab-os php oldalamat, ami már se <html>, se <body> tag-et nem tartalmazhat.
A Tab-nál egyként nincs Cancel hiba, az az alkalmazás oldalán, itt van:
http://apps.facebook.com/uj-alkalmazasom/
Egyelőre minden oldal csak egy próba <h1>-et, tab-okat, Like-ot, és Friend Requestet tartalmaz. A Tab-nál nem enged se html tageket használni, de az fbml kódokat sem ismeri fel. Lehet, hogy kihagytam valami deklarációt. De akkor kipróbálnám iframe-mel.
Biztos?
nézd meg
az fbml tageket kiszedtem.
igazából most az elvet nem értem:
van ugye az alkalmazásnak 3 oldala:
- a Tab fül tartalma (Totti-app)
- az alkalmazás profilja (http://www.facebook.com/apps/application.php?id=159263387434584)
- az alkalmazás külön oldala http://apps.facebook.com/uj-alkalmazasom/
ez eddig oké.
Az alkalmazás külön oldalán minden előzetes deklarálás nélkül iframe-es működéssel be tudok tenni egy php oldalt, amit megszerkesztek mondjuk akár egy regisztrációs űrlapor is tehetek rá, VISZONT: létezhetnek a tartalmi részben <fb:...> tagek. Ezzel tudom lájkoltatni, barátoknak küldetni, stb.
A profil az érthető.
De a Tab fül működése nekem teljes káosz.
Az nem iframe-mel működik, nem tehetek bele <!doctype>, <html>, <body> tageket, de nem is ismeri fel a saját <fb:...> tagjeit. Más alkalmazásokban, amiket néztem, mégis van pl. egy fullosan működő galéria a Tab fülön, úgy hogy alatta hozzá lehet szólni (<fb:>tag), és el lehet küldeni a Tab fülön is a barátaidnak (szintén <fb:>tag). A Tab fül kicsit érthetetlen számomra.
Tab fül
canvas url?
az az a szerver/mappa, ahonnan a php fájlokat beolvassa a facebook, nem?
első nekifutásra nem egy nagyon összetett alkalmazást akarok csinálni, csak megérteni a működését és mondjuk kipróbálni a lehető legtöbb funkciót, amit érdemileg el lehet benne helyezni.
Ha a Tab fülön egyelőre nem lehet iframe-et használni, akkor nem használok.
Csak akkor azt szeretném tudni, miért nem fogadja el pl. az <fb:like> taget a Tab fülön, ami fbml tag. <div>-et, <h1>-et, amit eddig próbaképp kipróbáltam, enged, az oké, csak meg van kötve a kezem, ha magát az <fb:>tageket sem ismeri.
Te csináltál már alkalmazást?
Ha igen, megnézném a Tab fülét, vagy az alkalmazás oldalát és akkor beszélhetnénk konkrétumokról.
Vagy (nem ismerem mélyebben az itteni szabályokat) választhatunk egy bizonyos alkalmazást, és megbeszélhetjük, hogy amit ott hsználnak és működik, nálam miért nem használható és miért nem működik.
Igen
canvas url:
bocs, hogy akadékoskodtam, de most jöttem rá, h mit akarsz :)
itt meg tudod nézni a forrást, ott meg nem mert a facebook átalakitja a tagjeit.
a tab a /tab mappa indexe.
Megnéztem
Skip gomb: Szerintem, az actionnek nem azt kellene megadni, hogy
http://apps.facebook.com/uj-alkalmazasom/index.php
, hanem a canvas URL-t, mivel iframeben használod, nem pedig FBML üzemmódban.Az FBML-es problémához nem tudok jelenleg hozzászólni, adhatnál egy paget, ahová beraktad a tabot a hibajelenséggel, hogy megnézzem (most, hogy már láttam az FBML-t). Ha tippelnem kellene, azt mondanám, hogy a serverFbml-t azért nem ismeri, mert a doksi szerint iframen belüli használatra van kitalálva.
Remélem, segített, nem teszteltem, de ha nagyon nem megy, lekoppintom és fölgyógyítok egy tesztet is.
Szerk: Weblabor lapozó sux.
Na ilyenkor tűnik ki, hogy ki
Ha felfogtam volna, hogy mi a jelentősége annak, h iframe-ben használom, rájöttem volna, hogy a doksiban leirt action nem jó.
Tényleg a canvas url-t kellett beleírni, a Skip most már jó (nyilván minden egyéb hasonló dolog is jó lesz)
A bom karaktereket utólag tettem bele, mert eredetileg minden ékezetes betűt elrontott a facebook.
Utána a Tab index fájlját lementettem utf-8-ban és már jó volt. Élesben nem fogok bom karaktereket használni.
Csinálok hibás fbml-t és küldöm a tabos fület:
http://www.facebook.com/profile.php?id=808709266&v=app_159263387434584
Tessék
Ja amúgy bocs a szedett-vedett forrásért, nem szoktam ilyen trehány lenni, de ezt egyelőre csak egy sima listerrel szerkesztem. Ha már el tudok indulni egy vonalon, akkor törlök mindent és rendesen megszerkesztem.
Ezt a tab fület nem tudom megérteni. Amikor azt mondod, hogy iframe-en belül kell használni, akkor én azt úgy értelmezem, hogy ezt valahol be lehet állitani. De nem lehet, mert ahogy elküldtem az alkalmazás szerkesztési nézetét, láttad, hogy iframe-re van állitva. Mégsem tudok betölteni egy konkrét php fájlt, mint ahogy itt:
http://apps.facebook.com/uj-alkalmazasom/
Amúgy még két dolog:
- az egyik, hogy a Tab fülön ha nem irom be a serverFbml-t, akkor nem is működik pl a request-from, hanem csak kiválasztok egy barátot, rányomok a küldésre, és bejön a Betöltés... és ennyi, be sem jön az előnézet.
- a másik, hogy ha ugyanezt a barátnak küldést benyomod a http://apps.facebook.com/uj-alkalmazasom/ oldalon, akkor a megjelenő előnézeti ablak (ami a tab fülön be sem tölt) nem középre, hanem nagyon jobb oldalt elcsúszva jön be. Ez is más alkalmazásokban középen van. Néztem rá paramétert, de nem találtam.
Köszi
Fül
A többit majd holnap.
Naszóval
A karakterkódolással az a probléma, hogy ezt a fejlécet küldi a szervered:
Content-Type: text/html; charset=ISO-8859-2
Gondolom, a szöveg viszont UTF-8 szeretne lenni.
A fül nem látszik a profilodon, mert nem vagyok az ismerősöd, de csináltam egy teszt oldalt: http://www.facebook.com/pages/Janoszen-Test-Page/127325693987108?v=app_159263387434584&ref=ts
A fülek ugye látszanak és látszólag jó helyre is linkelnek. A serverFbml egyáltalán nem látszik, de ez elvben azért van, mert a serverFbml csak iframeben működik, tab fülben (FBML módban) nem, ezt ki kellene venni. Próbáld ki légyszi, most nincs időm teszt appot gyártani hozzá, hogy kipróbáljam. Ha nem megy, hétvégén lekoppintom az FBML-t és játszom vele.
igen
Na most, ha kiszedem, akkor minden oké lesz, a szóban forgó request form megjelenik, viszont nem fog működni.
Azért tettem bele a serverFbml-t, mert a példaszkriptekben is benne van, az alkalmazás oldalán (tudom, iframe), működik a request, és miután itt nem működik, beletettem, hogy hátha amiatt. A serverFbml-t viszont nem szereti a Tab fül. Már csak azt nem értem, hogy másnál, ahol szintén VAN a Tab fülön request, és NINCS a szkriptjében <serverFbml> és <script>, ami utóbbi esetében meg sem jelenik a tartalom a Tab fülön, akkor mégis hol a hiba?
Kiszedem a serverFbml-t, hogy lásd, úgy nincs hiba, de nem is működik.
A Tab fül forrását ott találod ahol eddig.
(A karakterkódolást pár napon belül az összes fájlomon átirom, csak most az oldalam is egy nagy átalakításon vesz részt.)
Cím
fb:request-form action
paraméterének nem Te szervereden levő címet kell megmondani, hanem az FBML proxy címet, azaz http://apps.facebook.com/...A másik tippem, hogy ugyan a contentben valami FBML-re hasonlító dolog van encode-olva, de mintha hiányozna a lezáró vége a tagnek. Ezen velül az fb:multi-friend-selector sincs lezárva, tekintve, hogy XML alapú az FBML, lehet, hogy erre háklis a Facebook.
Többet majd akkor, ha az FB életre kelt, sajnos annyira nem vagyok profi FB fejlesztésben, hogy fejből megmondjam, konkrétan mi a gond.
11
a legjobb az lesz, ha minden fájlt végre normális szerkesztővel megcsinálok, és akkor a forrás is átlátható lesz.
ha te ennyit foglalkozol a témával, a legkevesebb, h rendesen megcsinálom.
Link
példák
példák!
http://developers.facebook.com/docs/guides/web
http://developers.facebook.com/docs/reference/javascript/
én ezekről az oldalakról és az ezeken lévő referenciaoldalakról szemezgettem
proclub, köszi már eddig is, ha ezután sem unod, várlak :)
szerk: ja, bocs, ha alkalmazásra gondoltál, akkor sorry, ezek csak példa szkriptek
kódolás
fájl kódoláshoz viszont annyira nem értek.
elég a fejlécbe beirnom, hogy
Eddig Közép-Európai(ISO)-t használtam.
Köszi
előlről kezdtem
lementettem utf8-ban, beállítottam, ahol lehetett a header és meta tageket is utf8-ra.
Mégis sok a kérdőjeles karakter.
A Skip gombokat is megcsináltam, az alkalmazás oldalán és a Tab fülön is. (A Tab fülön érdekes módon átugrik az én http://apps.facebook.com/... oldalamra. Ez lenne a célja?)
A Tabon továbbra sem működik a Request küldés gombja, szóval ott tartunk ahol eddig, csak most már olvashatóbb a forrásom. :)
Nézem
Szerk: a http://www.jatekbarlang.eu/fbapp/tab/ oldalra nekem a teljes site jön be. Sztem nem ez szeretne a tab url lenni, ugye? Így nehéz lesz debuggolnom, ha nem látom a forrást.
sorry
http://www.jatekbarlang.eu/fbapp/tab.php <- ez lett a Tab
köszi
Header
header és >
most beletettem a Tab fülbe is (tab.php), de ott nem tudom van-e értelme, mert nem változott tőle semmi nálam.
A lezárást tényleg elrontottam, csak ott belekavarodtam a sok lezáró tagbe. Most már azt is lezártam.
actiontext
akkor mégis ott volt...
na, akkor most már jó lesz a lezárás. (hogy vagyok képes ennyit szenvedni egy tag-lezárással...) az volt a baj, hogy eredetileg már volt egy lezáró tag a content-ben, csak rossz helyen, aztán szóltál, hogy maga a request-form nincs lezárva, és mikor azt lezártam, lett egy felesleges lezáró tag, ami most már végre oké.
na most FBML paraméter másképp kódolva? találtam egy ilyen megoldást:
php fgv. Ezt használtam az összes fbml tag-nél, és úgy tűnik, a karakterkódolás most jó.
bocsánat, hogy ennyit bénázom
Most már jó
Egyébként úgy egy kérdés: 2010 magasságában nem kellene átállni UTF-8-ra az oldaladdal? Mármint tök jól működik az ISO-8859-2 is, csak ha ilyesmiben utazol, akkor lehet, hogy célszerűbb nem állandóan oda-vissza konvertálni az adatokat.
dehogynem!
Most épp újítok rajta, és az új fájlok már utf8-ban vannak, csak a régiekhez nem akartam már hozzányúlni, mert kb 1 hét múlva megszűnnek.
Amúgy a Tab fülön továbbra sem működik a request, kiválasztok valamit, behozza, hogy Betöltés... és semmi. IE még valami hibát is kiír:
Sor: 12
Karakter: 107
Kód: 0
URI: http://static.ak.fbcdn.net/rsrc.php/zq/r/Z4Q7_29PvLz.js
Nekem a te tesztoldalad Tab fülén sem működik.
Firebug?
Egyébként ami a karakterkódolást illeti, nem tudom, merre vagytok helyileg, de ha Budapesten vagyok, összefuthatnánk egy-két órára, szerintem rövid idő alatt is nagyon sok kérdést helyre lehetne tenni. (Hogy miért ajánlom föl? Mert úgy látom, hogy nálad van akarás és kitartás is.)
más gép, más böngésző
Én pécsi vagyok, de fel szoktam látogatni Budapestre. De ha nincs ellenedre, msn-en vagy skype-on is beszélhetünk.
Na rátérve a témára, másik gépen, más böngészővel is próbáltam a Tab fület, de egyszerűen nem működik. Firebugot szoktam használni, de a tudásom kimerül a forrás megtekintésében, meg az elrendezésben. :(
Az alkalmazás oldalán működik a request (igaz, ott angol nyelvű a request minden szövege, amit nem én írtam), de a Tab fülön nem.
Nem értem
Egyébként a siteomon megtalálod az MSN elérhetőségemet.
mindenhol
Holnap felveszlek msn-re. :S
remek...
köszi
szerk.: töröltem az appot, csinálok másikat, és ha akkor is problémám lesz, akkor ismét szólok :)
érdekelhet másokat is
Köszi mindkettőtöknek azt, amit itt eddig összeírtatok. :)
Drupal
Egyébként nem tudom, a Drupal mennyire flexibilis abból a szempontból, hogy bizonyos URL-ekre egyáltalán ne használjon sablonokat, csak tegye ki a contentet. Valahogy az a rossz tapasztalásom, hogy az ilyen "edge case" eseteknél a CMS rendszerek általában inkább hátránynak bizonyulnak, mint előnynek. Aztán persze lehet, hogy a Drupal a nagy kivétel.
a másik oldal
Igazából én a másik felét képviselem, vagyis elvileg a pár év alatt megismertem annyira a Drupalt, hogy bármilyen kívánt kimenetet ki tudok hozni belőle. :)
Mindenesetre eléggé felcsigáztál ahhoz, hogy ezt a témát is felvegyem a közeljövőben megismerendők közé. :)
Fussunk egy kört
Kész modul
file_get_contents hiba
De valamit úgy látszik túlságosan is sajátos módon irtam meg, mert a következő hibaüzenetet kapom:
Ha először elfogadod az API-t, akkor minden simán megy, de aztán mintha lejárna a cookie, vagy valami és már nem enged ugyanazzal az elfogadott access_token-nel fellépni az API-ra.
Itt a kód:
Először mikor rányomsz az API-ra, előjön az engedélykérés.
Ha engedéyezed, akkor visszatölti ugyanezt az index fájl-t úgy, hogy egy ?code változóban megadja azt az access_token-t, amit engedélyeztél.
Ha megvan ez a kód, akkor ezzel a kóddal lekérem json-nal az oauth/access_token-t, ami a code változó értékét átadja access_token-nak, de a cimsorban még ott éktelenkedik a ?code változó.
Ezért ezt úgy oldottam meg, hogy én létrehozok egy cookie-t, hogy a ?code változó nélkül lefrissithessem az API canvas-át, és ha létezik a cookie, akkor tudja, h milyen access_token van engedélyezve.
De úgy látszik, a cookie, amit én létrehozok, nem valami tartós, vagy nem is engedi a Facebook, mert amint eltelik egy kis idő, a fenti hibát kapom.
Valaki tudja, hogy ha a cookie a ludas, akkor azt hogy tudom megadni úgy, hogy tartós maradjon?
szerk.: sikerült megoldani.
mi volt a megoldás?
Azt is leírnád, hogy végül mi lett a helyes megoldás?
mégse...
Nem tudtam kikeveredni a sokféle (Old Api, Graph Api) megvalósításból adódó zűrökből. Az egyik ezt nem tudja, a másik azt nem. Végül a file_get_contents hibát sem tudtam megoldani, csak akkor azt hittem. Később megint lejárt a file érvényessége.