Agence web et solutions IT, Experts Symfony contact@avanim-prod.com

Creer une application Facebook avec Symfony

9 novembre 2010 jravouna Symfony Étiquettes : , , , , 0 Comments

Il est possible d’automatiser la création d’applications Facebook avec Symfony.

Si vous n’avez aucune base concernant Symfony, il est conseillé de se plonger dans la documentation officielle ou de suivre les tutoriels de soGeek.

Vous êtes prêts ? Rendez-vous dans la suite !

Avant toute chose, rendons à César ce qui lui appartient : ce tutoriel est largement inspiré d’un article en anglais présent ici.

1) Vous pouvez utiliser une application complète Symfony pour développer une application Facebook, ou juste y associer un module. Je recommande l’utilisation d’un module pour les petites application FB. Ce qui suit sont les explications pour ce cas

2) Créer le module via symfony generate:module

3) Créer un view.yml dans le /config du module avec ce contenu :

all:
has_layout: on
layout: nom_layout
stylesheets: [-*]
javascripts: [-*]

Le layout pour l’application d’exemple est nom_layout. Vous pouvez bien sûr créer votre layout personnel dans /templates. Vous pouvez par la suite en établir le contenu comme par exemple le suivant :

4) Ajouter les librairies PHP5 de l’API Facebook dans le /lib de votre module. Il y a 2 fichiers : facebook.php et facebookapi_php5_restlib.php. Assurez-vous qu’il n’y a aucune dépendance dans ces fichiers (style include ou require). Symfony se chargera d’inclure automatiquement ces librairies. Vous ferez un petit symfony cc pour l’occasion.

5) Rendez-vous par la suite dans le actions.class.php de votre module. Otez la ligne de forward automatiquement présente après génération via generate:module (si elle y est toujours). Copiez maintenant le code ci-dessous dans votre fonction executeIndex() pour gérer l’authentification Facebook.

try
{
if (!$this->facebook->api_client->users_isAppAdded())
{
$this->facebook->redirect($this->facebook->get_add_url());
}
// Votre Code ici
}
catch (Exception $ex)
{
$this->facebook->set_user(null, null);
$this->facebook->redirect($this->appcallbackurl);
}

Ouvrez le /templates/indexSuccess.php de votre module et glissez-y un « Hello Facebook ». Sauvegardez-le.

6) Ajoutez maintenant une fonction preExecute() dans votre actions.class.php :

public function preExecute()
{
$this->appcallbackurl = ‘http://www.votre_domaine.com/nom_du_module’;
$this->appcanvasurl = ‘http://apps.facebook.com/nom_application_facebook’;
$appapikey = ‘cle_api_facebook’;
$appsecret = ‘cle_secrete_facebook’;
$this->facebook = new Facebook($appapikey, $appsecret);
$this->user = $this->facebook->require_login(); // id of Facebook user hat will add your app. Then, you can use $this->user in your all actions to get user id.
}

7) Créez votre application Facebook et indiquez d’URL de l’action index (ou sa route) comme callback url.

8) Rendez-vous sur votre « canvas url », via votre navigateur et ajoutez votre application à votre compte FB.

En espérant que cela vous aidera ! N’hésitez pas à nous faire pas de vos remarques, suggestions, idées.

Submit a comment