...du verbe Drupaler (1er groupe)

Altérer le formulaire d'inscription avec les informations récupérées Facebook connect

2. Avril 2012 - 16:17 -- Thomas
qsd.pngDrupal For Facebook est une collection de modules qui donnent la possibilité d'interagir avec Facebook.
Dans cet article nous nous consacrerons à la partie récupérations des informations sur Facebook. Si vous voulez savoir comment mettre en place votre application Facebook dans votre site Drupal c'est ici que ça se passe.
Pour commencer, vous n'êtes pas sans savoir que le grand cheval de bataille de Facebook est sa politique de confidentialité des données. C'est pourquoi, pour les applications il existe différents mécanismes de sécurisation des données. Sans trop rentrer dans les détailles, Facebook définit deux types de données, celle publques (données basique) et celle confidentielles. Ceci dit ces données ont un de ces statut par défaut, vous pouvez bien entendu rendre publique des données confidentielles, cela va dépendre de comment est configurer le compte Facebook.
Partant de ça, Facebook donne la possibilité de demander en plus des données publique déjà consultable, des données confidentielles. C'est ce qui va s'afficher lors de la demande d'ajout de votre application.
Vous allez devoir les ajouter dans votre application facebook.
Rendez-vous donc dans la configuration de votre application facebook.
Modifier l'application> Auth Dialog > Fieldset Authenticated Referals
  permissions.png

Pour toutes les permissions vous avez une liste ici :
http://developers.facebook.com/docs/authentication/permissions/

Plus d'information sur la fenêtre d'authentification :
http://developers.facebook.com/docs/opengraph/authentication/

Donc normalement à ce stade vous disposez d'une application Facebook configuré, du module Drupal For Facebook activé et configuré.
Pour commencer une petite fonction qui va récupérer les informations que l'on peut de l'utilisateur Facebook :
/*
Fonction qui récupère le profil d'un utilisateur FB
*/
function module_facebook_getUser($fbu =null)
  {
 $info=array();
   if(module_exists('fb'))
    {
    //Object facebook et facebook api
    global $_fb, $_fb_app;
        //récupération de l'id Facebook du user
    if($fbu==null)
      $fbu = fb_facebook_user();
	  
    if ($fbu) 
      {
      try
        {
        //Récupère les infos du users
        $info['fbuser'] = $_fb->api($fbu, 'GET');
        }
      catch (FacebookApiException $e) 
        {
  
        if (fb_verbose() == 'extreme') 
          {
          // After oauth upgrade, this exception is thrown always, wh en using app token.
          // So only show error when fb_verbose is extreme.  Hopefully facebook will fix the issue.
		  $message=t("Erreur lors de la récupération du fbUser _fb->api($fbu). Veuillez contacter l'administrateur.");
          fb_log_exception($e, $message); // Dont show token, it can inlude app secret.  using token " . fb_get_token($_fb));
          }
        }
      }
    }
   return $info;
  }

Il n'ya plus qu'a réaliser notre form alter après avoir appeler cette fonction. On pourra alors peupler les éléments de formulaires avec les informations correspondantes dans Facebook.
<?php

/**
* Implementation of hook_forms_alter().
* Définition des valeurs par défaut et masquage des champs.
*/
function module_inscription_form_alter(&$form, &$form_state, $form_id)
  {
if($form_id == 'user_register')
    {
    $info=array();
    if(module_exists('module_facebook'))
      $info= module_facebook_getUser();
   
    //Si on a un utilisateur Facebook
    if(isset($info['fbuser']) && $info['fbuser']['id']!='')
      {
      //Email
      if(isset($info['fbuser']['email']) && $info['fbuser']['email']!='')
        {
        $form['account']['mail']['#default_value'] =$info['fbuser']['email'];
        }
       //Prénom
      if(isset($info['fbuser']['first_name']) && $info['fbuser']['first_name']!='')
        {
        $form['group_identifiants']['field_prenom'][0]['#default_value']['value']=$info['fbuser']['first_name'];
        }
      //Nom
      if(isset($info['fbuser']['last_name']) && $info['fbuser']['last_name']!='')
        {
        $form['group_identifiants']['field_nom'][0]['#default_value']['value'] =$info['fbuser']['last_name'];
        }
      }
    }
  }
3
Average: 3 (1 vote)
Votre vote: Aucun(e)

Ajouter un commentaire

Texte simple

  • Aucune balise HTML autorisée.
  • Les adresses de pages web et de courriels sont transformées en liens automatiquement.
  • Les lignes et les paragraphes vont à la ligne automatiquement.
CAPTCHA
Image CAPTCHA