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:
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.