3 votes

La requête JS Facebook API semble interrompre les sessions

J'ai une extension firefox qui demande différentes API via XMLHttpRequest. Cependant, la demande de nombre de like/share/commentaires sur facebook conduit à une déconnexion dans certaines boutiques en ligne et certains sites web.

Par exemple, le webmail GMX doit restaurer la session après chaque clic. Certains magasins en ligne semblent perdre complètement la session, ce qui fait que le panier est vide.

Le problème ne se produit que lorsque la requête facebook est activée.

URL de la demande

http://api.facebook.com/method/fql.query?query=SELECT%20normalized_url,%20share_count,%20like_count,%20comment_count,%20click_count,%20total_count%20FROM%20link_stat%20WHERE%20url=%22www.heise.de%22&format=JSON

Code Javascript pour la requête

        var querystring = facebookURL + encodedUrl + facebookURLParams; // looks like the above
        var mFacebookRequest = new XMLHttpRequest();
        mFacebookRequest.onload = parseFacebookResponse;
        mFacebookRequest.open( "GET", querystring );
// already tried without user-agent
        mFacebookRequest.setRequestHeader( "User-Agent", "Mozilla/4.0 (compatible; GoogleToolbar 2.0.114-big; Windows XP 5.1)" );

Fonction parseFacebookResponse

         function parseFacebookResponse() {
                var fbcount = "-";
                var share_count = 0;
                var like_count = 0;
                var comment_count = 0;

                var aDoc = mFacebookRequest.responseText;
                if( aDoc == null || aDoc == -1 || aDoc.length == 0 )
                {

                } else {

                    var jsonDoc = JSON.parse( aDoc );
                    var temp = jsonDoc[0];

                    share_count     = parseInt(temp['share_count']);
                    like_count      = parseInt(temp['like_count']);
                    comment_count   = parseInt(temp['comment_count']);

                }

Le code fonctionne parfaitement et les chiffres sont affichés. Mais il m'empêche de me déconnecter. Une idée ?

1voto

bell0 Points 110

Vous effectuez une demande HTTP XML inter-domaines. Si l'on ajoute à cela la possibilité que le site GMX place un cookie de session expirant immédiatement, votre session est tuée. Ce n'est qu'une hypothèse.

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