41 votes

Comment faire en sorte que le bouton de connexion Facebook redirige vers une URL particulière ?

Voici l'information sur le bouton de connexion de Facebook

http://developers.facebook.com/docs/guides/web/

Ainsi, un bouton de connexion s'affiche et l'utilisateur peut cliquer dessus pour se connecter à Facebook (une fenêtre de connexion s'ouvre). Mais une fois que l'utilisateur s'est connecté, même si les boutons "J'aime" ou "Partager" fonctionnent maintenant, le bouton "Connexion" reste affiché.

1) Existe-t-il un moyen de rediriger vers une URL après que l'utilisateur se soit connecté avec succès ?
2) Une autre solution consiste à modifier dynamiquement le bouton de connexion pour le rendre invisible ou mieux encore, l'afficher comme "Connecté en tant que [Peter (nom d'utilisateur)]".

Comment (1) et/ou (2) peuvent-ils être réalisés ? (Je ne vois pas d'URL de rappel dans les paramètres de l'application Facebook et il se peut que la redirection doive se faire vers une URL différente de celle de la page A ou de la page B du site web.)

Mise à jour : J'ai trouvé des informations sur <fb:login-button on-login="top.location = '...'; "> mais je vois que certains sites web font la redirection mais il n'y a pas de on-login='...'

38voto

Andy Points 2452

1) Vous pouvez également rediriger les données lors de la connexion en utilisant un code comme celui-ci (notez le caractère auth.login événement) :

 <script src="http://connect.facebook.net/en_US/all.js">
  </script>
  <script>
      FB.init({
          appId: '??????????????', cookie: true,
          status: true, xfbml: true
      });
      FB.Event.subscribe('auth.login', function () {
          window.location = "http://example.com";
      });
  </script>
  <fb:login-button>
     Login with Facebook
  </fb:login-button>

2) Pour déterminer s'il faut afficher ou masquer le bouton de connexion, vous pouvez utiliser les éléments suivants FB.getLoginStatus pour savoir si l'utilisateur est connecté. La page suivante pourrait vous être utile : http://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/

2voto

Option FBML : Cela devrait vous donner la fonctionnalité que vous voulez (avec xfbml:true sur FB.init ) :

<fb:login-button autologoutlink="true" onlogin="OnRequestPermission();">
</fb:login-button>

Lorsque l'utilisateur est connecté, le message devient "Déconnexion". De plus, si l'utilisateur n'a pas accordé d'autorisations à l'application, la boîte de dialogue de demande d'autorisation s'affiche.

Option personnalisée : Si vous n'aimez pas utiliser FBML, vous pouvez créer votre propre bouton de connexion Facebook comme ceci :

HTML :

<button id="THE_BUTTON">Login</button>

Javascript :

FB.init({appId: 'YourAPPID', status: true, cookie: true, xfbml: true, oauth : true});
FB.getLoginStatus(function(response) {
    if (response.status.toString().indexOf("connected")>-1) {
        initAll(); //User is connected and granted permissions
        FB.api("/me", function (response) {
            document.getElementbyId("THE_BUTTON").value = 
                                            "Logged in as " + response.name;
        });
    } else { 
        // This URL is specially formed to ask permissions for your app. You change the 
        // permissions and your appID
        //redirect_uri = Change this to your desired callback URL
        top.location=window.location="http://www.facebook.com/dialog/oauth/?scope=read_stream,publish_stream,friends_photos,friends_activities&client_id="yourAPPID(nobrackets)"&redirect_uri=http://apps.facebook.com/filtered_feed/&response_type=code";
    }
});

Ainsi, si l'utilisateur est connecté, le bouton sera remplacé par "Logged in as". nom de l'utilisateur ." Sinon, la boîte de dialogue OAuth apparaîtra.

1voto

Jason Fritz Points 11

L'URL du site Web vers lequel vous redirigez doit finalement être sur le même domaine que celui que vous avez configuré pour votre application dans les paramètres de l'application. En gros, cela signifie que vous devez mettre à jour votre page Facebook ou votre page d'application avec l'URL correcte. Tant que vous avez cette URL, l'application connexion à facebook fonctionnera correctement sur la redirection.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X