Facebook avec OAuth2

Source (oct 2013) http://fuseinteractive.ca/blog/how-allow-facebook-logins-your-drupal-site

drush dl oauth oauthconnector oauth2 connector http_client ctools ; drush en oauthconnector

Coté Facebook

Avoir un compte pour créer l'app, puis aller à https://developers.facebook.com/apps s'enregistrer comme dev (il faut indiquer son tel). Puis y créer l'appl "Quick Start for Website".

  • Aller à admin/structure/oauthconnector pour ajouter id app et pw indiqué par Facebook.
  • Dans son appli Facebook, dans Settings (haut gauche), ajouter son email + dans "App Domains" l'URL (sans http devant). En bas de la page, cliquer sur Add Plateform / Website

L'assistant de configuration fb propose alors un code js à récupérer (et ajouter au site drupal, voir plus bas) et la conf en bas de page.

Aide https://developers.facebook.com/docs/opengraph/getting-started#create-app
http://www.moisesbelda.com/howto-setup-facebook-oauth2-api-access/ est aussi utile

Coté drupal

1. insérer le SDK js de facebook (fb.js) => situer où est le thème (.../sites/all/themes/themex ou sites/mon-site/themes/themex), pour y ajouter les fichiers javascript requis.
Sur le drupal, ouvrir le bon theme.info, y ajouter la bonne ligne (chemin du .js). Dans cet ex: scripts[] = js/fb.js
envoyer le .js dans le dit dossier (changer en_US par fr_FR). Vider le cache du thème.
cf "fb.js.txt" en pièce jointe, où "app Id" doit montrer l'id de l'application (c'est une série de chiffres).

2. Aller à admin/structure/oauthconnector pour ajouter id app et pw indiqué par Facebook.

3. admin/people/permissions Connector "Connect with Facebook" pour les anonymes et logués. A chaque ajout de provider (ici FaceBook, fb en court), il faut ajouter les perms à Connector (j'ai aussi testé twitter (service link)).

 admin/structure/oauthconnector montre en 1er col le provider du service (les liens sont 404), puis Connect URL et Callback URL (qui affichent " Authorization finished The application has been authorized ".
Plus à https://developers.facebook.com/docs/facebook-login/permissions/v2.4

 

Pour l'instant, pas d'onglet de login fb mais logué, sous Connector on trouve des boutons de création de compte.

A chaque ajout de service, penser aux perms de Connector. Ces boutons donnent des erreurs

Soucis de perm https://developers.facebook.com/apps/votreIDappli/settings/advanced/#oauth_redirect et j'ajoute l'url call back

Tests https://developers.facebook.com/tools/debug/

 

Sur le web

https://developers.facebook.com/docs/facebook-login/permissions/v2.4 et https://developers.facebook.com/docs/facebook-login/login-flow-for-web/v2.4

https://developers.facebook.com/docs/facebook-login/testing-your-login-flow

https://developers.facebook.com/docs/sharing/webmasters
https://developers.facebook.com/docs/plugins/send-button

logo drush