Question

Je développe un site pour un client qui dispose déjà des photos de ses produits sur Facebook et souhaite que les mêmes albums soient répliqués sur son site. J'utilisais déjà Facebook Connect. J'ai donc abandonné une combinaison de photos.getAlbums et de photos.get pour créer dynamiquement les galeries.

Jusqu'ici, tout va bien, mais je me suis rendu compte ensuite que s'il n'y a pas d'utilisateur enregistré dans le FBC, aucune session n'est créée et l'API devient inutilisable, même pour le contenu accessible au public. Je souhaite évidemment montrer les albums à tout le monde et pas uniquement aux personnes qui connectent leurs comptes.

Est-ce ainsi que toutes les fonctions de l'API Facebook fonctionnent? Quelle est la meilleure solution de contournement (plus facile à mettre en œuvre) pour cette situation?

Était-ce utile?

La solution

Depuis septembre 2010, vous pouvez désormais vous authentifier en tant qu'application, sans utilisateur associé. Voir http://developers.facebook.com/docs/authentication/ pour plus de détails. Ou vous pouvez exécuter cet exemple de code pour obtenir un jeton d'accès:

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

Autres conseils

Pour mémoire, j'ai réussi à résoudre cette situation en développant un petit backend qui oblige le client à se connecter une fois à Facebook et à donner offline_access autorisation étendue à l'application FB, afin que je puisse enregistrer sa clé de session et l'utiliser pour authentifier le client API Facebook chaque fois que je dois l'utiliser FQL pour obtenir du contenu non public.

On pourrait évidemment ajouter une certaine mise en cache au milieu pour éviter les requêtes inutiles à Facebook, mais cela fonctionne bien depuis des mois sans rencontrer aucune limite que je sache.

Cela n’a aucun sens pour moi: j’ai une application (relativement simple) qui s'affiche dans Facebook même si l’utilisateur ne s’est jamais connecté à Facebook auparavant (dans ce cas, il affiche des données de démonstration).

Lorsque j'utilise la bibliothèque PHP facebook, je viens de faire ceci:

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

Aucun identifiant de session requis - mais, de toute évidence, les fonctions de l'API dépendant d'informations sur l'utilisateur ne fonctionnent pas.

Vous pouvez également rechercher une "session infinie" . pour votre application - vous pouvez créer une clé de session infinie pour vous-même et utiliser cette session pour accéder à l'API.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top