Domanda

Sto sviluppando un sito per un cliente che ha già le foto dei suoi prodotti su Facebook e vuole che gli stessi album vengano replicati sul suo sito. Stavo già utilizzando Facebook Connect, quindi ho eliminato una combinazione di photos.getAlbums e photos.get per creare dinamicamente le gallerie.

Fin qui tutto bene, ma poi mi sono reso conto che se non ci sono utenti registrati tramite FBC, nessuna sessione viene creata e l'API diventa inutilizzabile, anche per i contenuti che sono pubblicamente disponibili. Ovviamente voglio mostrare gli album a tutti e non solo alle persone che collegano i loro account.

È così che funzionano tutte le funzioni nell'API di Facebook? Qual è la soluzione migliore (più facile da implementare) per questa situazione?

È stato utile?

Soluzione

A partire da settembre 2010, ora puoi autenticarti come un'applicazione, senza utenti associati. Vedi http://developers.facebook.com/docs/authentication/ per i dettagli. Oppure puoi eseguire questo codice di esempio per ottenere un token di accesso:

curl -F grant_type=client_credentials \
 -F client_id=your_app_id \
 -F client_secret=your_app_secret \
 https://graph.facebook.com/oauth/access_token

Altri suggerimenti

Per la cronaca, sono riuscito a risolvere questa situazione sviluppando un piccolo backend che richiede al client di accedere a Facebook una volta e fornire offline_access permesso esteso all'app FB, quindi posso salvare la sua chiave di sessione e usarla per autenticare il client API di Facebook ogni volta che devo usare FQL per ottenere contenuti non pubblici.

Si potrebbe ovviamente aggiungere un po 'di cache nel mezzo per evitare richieste non necessarie a Facebook, ma ormai da mesi funziona benissimo senza colpire alcun limite che io conosca.

Questo non ha senso per me: ho un'app (relativamente semplice) che esegue il rendering in Facebook anche se l'utente non ha mai effettuato l'accesso a Facebook prima (nel qual caso visualizza i dati dimostrativi).

Quando utilizzo la libreria di Facebook PHP, faccio semplicemente questo:

$ facebook = new Facebook ($ api_key, $ secret);

Nessun ID di sessione richiesto, ma, ovviamente, le funzioni API che dipendono dalle informazioni sull'utente non funzioneranno.

Puoi anche esaminare una " infinite session " per la tua app: potresti creare una chiave di sessione infinita per te stesso e utilizzare quella sessione per accedere all'API.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top