mediatribe.net -- Drupal et développement web

Notice: this post was last updated Il y a 3 years 19 weeks so it might be outdated. Please be cautious before implementing any of suggestions herein.

Drupal 7: Se connecter avec Facebook et Twitter

Voici ma technique pour permettre la connection au site via Facebook ou Twitter.

Avant de commencer

Twitter

  • Sur admin/reports/status, vous verrez qu'il manque les clés de l'application Twitter. Pour les ajouter allez à la page admin/config/services/twitter/settings et mettez-y vos clés.
  • Sur votre site Drupal, allez sur la page admin/config/services/twitter/signin et sous "Enregistrer automatiquement les nouveaux utilisateurs", choisissez "Oui". Pour le faire en code, utilisez variable_set('twitter_signin_register', 1);.
  • Déconnectez-vous de votre site Drupal
  • Vous pouvez maintenant créer un nouveau compte via twitter.
  • Déconnectez-vous à nouveau et connectez-vous à nouveau, vous vous connecterez à votre compte existant.
  • Note si vous voulez faire des tests automatisés: Actuellement il existe un module twitter_mock qui devrait en principe simuler Twitter pour fins de tests, mais il n'a pas été gardé à jour et ne fonctionne pas.

Limitations de twitter

  • S'il existe déjà un compte sur le site ayant le même nom que votre compte Twitter, le processus ne fonctionnera pas: https://drupal.org/node/2210783

Facebook

  • FB Oauth ne vous avisera pas sur admin/reports/status si vous n'avez pas entré vos clés d'application, à moins d'appliquer ce patch.
  • Allez sur admin/config/people/fboauth et entrez l'ID et le secret tels qu'ils apparaissent sur Facebook.
  • Maintenant, sur votre site Drupal, ajoutez le bloc "Facebook connect" dans la région de votre choix, uniquement sur la page user/login pour les utilisateurs anonymes.
  • Toujours sur votre site Drupal, sur admin/config/people/accounts, dans la section "Qui peut enregistrer des comptes", choisissez "Visiteurs", et cochez "Exiger la vérification de l'adresse de courriel lorsqu'un visiteur crée un compte."
  • Vous pouvez maintenant vous déconnecter de Drupal puis vous reconnecter avec Facebook, cela vous créera un nouveau compte.

Déboguer Facebook

  • Si vous voyez une page blanche après vous être connecté, utilisez Safari plutôt que Chrome, vous verrez un message d'erreur qui vous dira quoi faire. Assurez-vous que le domaine de votre site est identique au domaine (app domain) et website url de votre app Facebook.

Notez que si vous voulez que

Notez que si vous voulez que vos clés ne résident pas dans la base de données, vous pouvez ajouter quelque chose comme ceci dans chaque environnement:

$conf['fboauth_id'] = '805591124336769';
$conf['fboauth_secret'] = '0889a1fb4838a2f2f1b982a203c7e3rf';
$conf['twitter_consumer_key'] = 'EH2nfafddV6ZtffgNXTukw';
$conf['twitter_consumer_secret'] = 'kTRFGo3Hg2zOUS9gQuCfRfd33BnnR4VVrEzkud7ZjY';

Ceci vous permet de rebâter votre bd sans perdre d'infos (par exemple en utilisant drush si -y && drush en monsite_deploy -y si vous utilisez un module de déploiement de site.