2010-09-22 14 views
5

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.

risposta

1

Applicazione della scheda FB I file SWF ricevono una chiave di sessione in flashvars, che può essere scambiata con un token oauth! http://fraserhobbs.com/2010/07/flash-facebook-graph-api-in-tabs/ Davvero mi ha aiutato.

+0

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

0

L'utilizzo del tag <fb:share> farà tutto ciò per voi. Se non hai effettuato l'accesso e fai clic sul collegamento <fb:share>, ti verrà chiesto di effettuare il login, se non hai ancora accettato l'applicazione, ti verrà chiesto di accettarlo, quindi di pubblicare sulla loro bacheca ciò che desideri. Ho fatto questo con il mio sito per condividere prodotti e punteggi di gioco, ma può essere fatto lo stesso.

EDIT:

Scopri i Graph API for publishing. Se si utilizza il flash, si consiglia di utilizzare il Facebook Flash SDK

+0

Grazie per la risposta, ma devo essere in grado di chiamare questa funzionalità dall'interno dell'applicazione flash. Mi chiedevo se la stessa funzione può essere effettuata tramite una chiamata FBJS? Questa sarebbe la soluzione migliore per me, ma non l'ho mai visto da nessuna parte – bharling

+0

@bharling Ho aggiornato la mia risposta. – Bot

+0

@bharling: la risposta di jostster ha funzionato per te? Anche io sono interessato alla soluzione. – goliatone