Innanzitutto scuse per la lunghezza di questa domanda e per chiedere informazioni sull'API di Facebook (apparentemente una delle API più incoerenti al mondo ...).Come fare qualsiasi tipo di condivisione di informazioni da una scheda di Facebook?
La situazione: Stiamo producendo una "community" di prodotto Facebook - tipo di pagina per il nostro cliente, con schede standard di Facebook, una delle quali incorpora un gioco Flash. Alla fine di questo gioco vorremmo essere in grado di condividere il punteggio finale degli utenti tramite un post sul muro, e anche invitare gli amici a sfidare il punteggio.
In primo luogo - il client è insistente sul fatto che il gioco appaia in una scheda all'interno della pagina, quindi spostare tutto questo su un'applicazione (ad esempio, apps.facebook.com
) non è purtroppo un'opzione. Sono consapevole che è possibile incorporare un'applicazione in una scheda anziché in una FMBL statica, ma l'ho provata e il risultato è essenzialmente lo stesso o non riesce (la scheda impone restrizioni stringenti su ciò che può essere reso, rafforzando l'uso di FBML e annullando la FB:Iframe
tag per gli avviatori).
Attualmente stiamo incorporando questo gioco su una scheda FBML statica, utilizzando il tag fb:swf
e il bridge FBJS per abilitare alcune semplici interazioni nella scheda (navigazione verso una nuova finestra, ecc.). Abbiamo anche provato l'approccio embed FBJS e il gioco in un'applicazione e aggiungendolo come una scheda nella pagina. In tutti i casi, non sembra esserci alcun modo per ottenere l'UID dell'utente di visualizzazione quando si trova nell'ambiente di tabulazione (nonostante il fatto che devono essere registrati per vedere la pagina in primo luogo). Il gioco stesso è Flash ActionScript 3 e ho la possibilità di utilizzare l'API di ActionScript 3 di Facebook. Usando questo approccio il processo di meglio sono riuscito a venire con finora è indicato di seguito:
0) Creare un'applicazione separata con il solo scopo di trattare con la condivisione di punteggio, ecc
1) utente fa clic 'Condividi il mio punteggio' alla fine del gioco sulla pagina TAB.
2) SWF fa la richiesta di accesso alla richiesta di Facebook standard aprendo una nuova scheda.
3) L'utente conferma questa azione e chiude la nuova finestra.
4) l'utente fa clic ancora una volta all'interno del gioco Flash per confermare che hanno effettuato il login.
5) SWF esegue la facbook.verifySession()
e si apre ancora un altro finestra chiedendo il permesso di commento sul muro degli utenti.
6) L'utente lo conferma e viene nuovamente riportato in gioco.
7) SWF ascolta "FacebookEvent.PERMISSIONS_CHANGED" e posta sul muro una volta confermato.
Poiché non c'è modo di verificare se l'utente ha aggiunto l'applicazione durante il caricamento all'interno di una scheda, è probabile che debbano seguire questa procedura ogni volta che desiderano pubblicare un risultato del gioco, il che è orribile. Il problema principale sembra essere che qualsiasi RIA residente su una scheda di Facebook non riceve informazioni utili all'interno del token OAuth per quella scheda, al contrario di una RIA che si trova su apps.facebook.com
che ottiene tutte le informazioni necessarie all'interno delle intestazioni della richiesta.
In parole semplici, ho bisogno del modo più semplice e diretto per creare un post di Facebook da una scheda della pagina di un prodotto Facebook, sia che si utilizzi FMBL, FBJS, ActionScript 3, ASP o qualsiasi combinazione di questi.
Ho visto questo: https://stackoverflow.com/questions/3674923/facebook-share-or-publish-dialogue-from-page-tab-closed che è effettivamente la stessa domanda che sto chiedendo, ma la risposta non è chiara, e non sembra che risolverebbe il mio problema.
Se questo non funziona, suggerirei di utilizzare l'app iframe (abilita la scheda) e di usare js sdk per effettuare chiamate al grafico api dal flash. Dovrebbe essere abbastanza semplice per effettuare le chiamate nel contesto dell'utente senza alcun problema. – Jason