Kom ihåg mig?
Home Menu

Menu


Facebook Connect - Stänga inloggningspopup

 
Ämnesverktyg Visningsalternativ
Oläst 2010-01-11, 10:47 #11
peterbf peterbf är inte uppkopplad
Nykomling
 
Reg.datum: Sep 2008
Inlägg: 48
peterbf peterbf är inte uppkopplad
Nykomling
 
Reg.datum: Sep 2008
Inlägg: 48
Testade radera alla filer som har med Facebook Connect och göra. Sen gjorde jag om processen igen.

Nu så stängs popupen efter responsen från Facebook, men sidan jag var på när jag klickade upp inloggningspopup:en, laddas _inte_ om.

Jag har ingen 'base url' då jag inte behöver använda mig av FBC på flera subdomäner.

Vad kan problemet vara nu och vad kan jag göra för att felsöka det på det mest informativa tillvägagångssättet?
peterbf är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-01-11, 12:47 #12
peterbf peterbf är inte uppkopplad
Nykomling
 
Reg.datum: Sep 2008
Inlägg: 48
peterbf peterbf är inte uppkopplad
Nykomling
 
Reg.datum: Sep 2008
Inlägg: 48
Upplever lite av ett problem nu.

Har testat lite olika javascript från Facebook Community.
Saken är den att jag ser om inloggningsuppgifterna är korrekta i min MasterPage, därefter skapar jag sessioner osv. Men när facebook stänger popupen och fyller min <div id="user" /> med användarinfo (på klientsidan givetvis), och jag laddar om sidan, så är jag inte inloggad (på serversidan givetvis).

Mitt javascript ser ut såhär:
Kod:
        FB_RequireFeatures(["XFBML"], function() {
            FB.init("9afc553810bcd6aeef3ecdbd72a8b48a", "http://Min-Domän.com/xd_receiver.htm");
            FB.Facebook.get_sessionState().waitUntilReady(function() {
                FB.Connect.ifUserConnected(update_user_box);

            });
        });

        function update_user_box() {
            var user_box = J("#user");

            user_box.append(
            "<span>"
            + "<fb:profile-pic uid='loggedinuser' facebook-logo='true'></fb:profile-pic>"
            + "Welcome <fb:name uid='loggedinuser'></fb:name>"
            + "You are signed in with your facebook account."
            + "</span>");

            FB.XFBML.Host.parseDomTree();
        }
Så om man loggar in så visas användaruppgifterna mha. JavaScript, så det funkar, men inte serversidans validering - vilket givetvis är ett måste då alla medlemmar sparas i databasen.

Jag läser av uppgifterna såhär:

Kod:
        FBConnectAuthentication auth = new FBConnectAuthentication(ConnectAuthentication.ApiKey, ConnectAuthentication.SecretKey);
        if (auth.Validate() != ValidationState.Valid)
        {
            //Response.Redirect("/Default.aspx");
            // The request does not contain the details of a valid Facebook connect session - you'll probably want to throw an error here.
        }
        else if (!String.IsNullOrEmpty(Request.QueryString["session"]))
        {
            FBConnectSession fbSession = auth.GetSession();
            string userId = fbSession.UserID;
            string sessionKey = fbSession.SessionKey;
         
            Facebook.Schema.user user = p.Api.Users.GetInfo(long.Parse(userId));

            if (user != null)
            {

                var friends = p.Api.Friends.Get(long.Parse(userId));

                string FirstName = user.first_name;
                string LastName = user.last_name;
          
                string ShortenLastName = string.Empty;
                string UsernameTry = string.Empty;

                UsernameTry = GenerateUserNameWithNumbers(FirstName);

                UsernameTry = UsernameTry.Trim();

                if (LoginUser(userId)) 
                {

                    if (CurrentUser.IsFromFacebook)
                    {
                        if (!CurrentUser.IsFacebookEmailActivated)
                        {
                            Response.Redirect("/User/ActivateAccount.aspx");
                        }

                    }
                }

                if (Celpocket.Profile.UserExists(userId))
                {
                    UsernameTry = GenerateUserNameWithNumbers(FirstName);
                }

                bllCreateAccount.CreateAccount(UsernameTry, userId, RandomPassword.Generate(10), FirstName, LastName, user.birthday_date);

                if (LoginUser(userId))
                {

                    if (CurrentUser.IsFromFacebook)
                    {
                        if (!CurrentUser.IsFacebookEmailActivated)
                        {
                            Response.Redirect("/User/ActivateAccount.aspx");
                        }
                    }
                }
            }
        }
Men den stänger ju popupen direkt nu? Lever sessionen från ett annat fönster (som popupen är)?

Senast redigerad av peterbf den 2010-01-11 klockan 12:52
peterbf är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-01-11, 13:34 #13
peterbf peterbf är inte uppkopplad
Nykomling
 
Reg.datum: Sep 2008
Inlägg: 48
peterbf peterbf är inte uppkopplad
Nykomling
 
Reg.datum: Sep 2008
Inlägg: 48
Det mesta funkar som det ska nu... Men jag har problem med en sista grej, och det är ett litet litet JavaScript-block som ser ut som följer:

Kod:
        FB_RequireFeatures(["XFBML"], function() {
            FB.init("9afc553810bcd6aeef3ecdbd72a8b48a", "http://MinDomän.com/xd_receiver.htm");
            FB.Facebook.get_sessionState().waitUntilReady(function() {

                    window.location.href = window.location.href;
                    FB.Connect.ifUserConnected(update_user_box);
                
            });
        });
Detta är för att jag vill göra en reload när popupen stängs, och det funkar perfa. Man ser att man är inloggad på serversidan och att ett konto, inkorg och gästbok o.s.v. skapats.

Men det som ju naturligtvis sker är att den gör en reload hela tiden, den stoppar aldrig.
Jag testade definiera en variabel med värdet '0' innan funktionen, och sen öka den med variabel++ för att sen se om den är '0' - och då köra reload. Så den bara körs en gång.

Men trög som jag är så när sidan laddas om nollställs ju variabeln såklart...

En annan lösning?

Senast redigerad av peterbf den 2010-05-12 klockan 12:04
peterbf är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-01-11, 20:22 #14
peterbf peterbf är inte uppkopplad
Nykomling
 
Reg.datum: Sep 2008
Inlägg: 48
peterbf peterbf är inte uppkopplad
Nykomling
 
Reg.datum: Sep 2008
Inlägg: 48
Löste det med jQuery.cookie().

Sen raderar jag cookien när man loggar ut med facebook-knappen.
peterbf är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-01-13, 10:07 #15
peterbf peterbf är inte uppkopplad
Nykomling
 
Reg.datum: Sep 2008
Inlägg: 48
peterbf peterbf är inte uppkopplad
Nykomling
 
Reg.datum: Sep 2008
Inlägg: 48
Hej igen!

Jag har min facebook-login-metod i min MasterPage. Jag tittar om QueryString:en ("Do" == "Login"). Då körs koden som loggar in facebook-användaren.

Jag har lagt in denna URL:en i min facebookapplikations inställningar ( Canvas URL ) och även testat lägga in URL:en på alla andra fält där man kan skriva in URL:er i applikationsinställningar, bara för att kontrollera att jag inte missat nåt.

Men facebook når aldrig dit. Jag har inte en aning om varför.

När man loggat in så stängs facebook-login-popupen, sidan laddas om. Men du har inte loggats in på min webbplats.

Däremot, när jag loggat in med mina facebookuppgifter och facebook-login-popupen stängts, så kan jag manuellt skriva in "?Do=Login", och då loggas man in. Men man vill ju att detta ska ske i facebook-login-popupen, eller hur?

Ha en underbar dag!
peterbf är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-01-13, 22:26 #16
nord84s avatar
nord84 nord84 är inte uppkopplad
Medlem
 
Reg.datum: Dec 2004
Inlägg: 229
nord84 nord84 är inte uppkopplad
Medlem
nord84s avatar
 
Reg.datum: Dec 2004
Inlägg: 229
hmm.. ännu en nöt att knäcka i FBCs underbara värld.
nord84 är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-01-14, 02:42 #17
Anders Larssons avatar
Anders Larsson Anders Larsson är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jan 2004
Inlägg: 3 205
Anders Larsson Anders Larsson är inte uppkopplad
Klarade millennium-buggen
Anders Larssons avatar
 
Reg.datum: Jan 2004
Inlägg: 3 205
Använder inte dot.net, så jag har tyvärr ingen möjlighet att komma med mer hjälp.
Anders Larsson är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-01-14, 17:38 #18
peterbf peterbf är inte uppkopplad
Nykomling
 
Reg.datum: Sep 2008
Inlägg: 48
peterbf peterbf är inte uppkopplad
Nykomling
 
Reg.datum: Sep 2008
Inlägg: 48
Tjänare, Anders!

Detta är inget .NET-specifikt som tur är.

Jag undrar varför inte facebook skickar min till URL:en jag angivit i Canvas-textrutan i application settings på facebook.

Som jag nämnde i förra inlägget har jag testat slänga in http://www.min-sida.com/?Do=Login överallt. Men den går inte dit.

Kanske nån vet varför?
peterbf är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-01-14, 17:58 #19
Anders Larssons avatar
Anders Larsson Anders Larsson är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jan 2004
Inlägg: 3 205
Anders Larsson Anders Larsson är inte uppkopplad
Klarade millennium-buggen
Anders Larssons avatar
 
Reg.datum: Jan 2004
Inlägg: 3 205
Du ska inte skickas till den url som står under canvas. Det är inställningar för Facebook Apps, som ligger på apps.facebook.com.

Du ska istället pilla på fliken Connect. Under Connect Url ska du sätta sajtens huvudadress (www.hejsanhopp.se). Sätt base domain om du även tillåter trafik på hejsanhopp.se, annars kommer inte den domänen att fungera.

När du loggas in ska du inte redirectas till en annan sida, utan Facebook tar hand om inloggningen i den popup som kommer, loggar in användaren, sätter lite cookies mha js, stänger rutan och laddar om den sidan som öppnade popupen.

JS+FBAPI på denna sida märker då att du är inloggad.

Har du testat att ladda ner deras connect-demo, running-sajten?

Citat:
Ursprungligen postat av peterbf Visa inlägg
Tjänare, Anders!

Detta är inget .NET-specifikt som tur är.

Jag undrar varför inte facebook skickar min till URL:en jag angivit i Canvas-textrutan i application settings på facebook.

Som jag nämnde i förra inlägget har jag testat slänga in http://www.min-sida.com/?Do=Login överallt. Men den går inte dit.

Kanske nån vet varför?
Anders Larsson är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-01-15, 09:41 #20
peterbf peterbf är inte uppkopplad
Nykomling
 
Reg.datum: Sep 2008
Inlägg: 48
peterbf peterbf är inte uppkopplad
Nykomling
 
Reg.datum: Sep 2008
Inlägg: 48
Jag måste fixa server-autensiering. Okej, facebook löser det på klientsidan, men medlemmen måste ju loggas in på mitt community så att säga.

Problemet jag hade när jag hade inloggningskoden direkt i Index-filen, var att om du är inloggad facebook, innan du kommer till min sajt. Så loggas du in per automatik förutsatt att du redan är registrerad på mitt community så att säga.

Därför var jag tvungen att använda en QueryString som bara är till för de användare som loggar in via min sida.
peterbf är inte uppkopplad   Svara med citatSvara med citat
Svara

Taggar
facebook connect


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 06:06.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017