Freitag, Juni 5, 2020

Facebook c# sdk login in asp.net 4.0 Webseite

Ich weiß, dass ähnliche Frage wurde schon mehrfach gefragt, aber noch kann ich es nicht arbeiten lassen. Ich möchte ein login auf meine Seite mit den neuesten “ facebook C# SDK und Lesen, angemeldete Benutzer e-mail und Namen.

Hier ist mein web.config facebook-Konfiguration:

  <configSections>
    <section type="Facebook.FacebookConfigurationSection, Facebook" 
    name="facebookSettings" allowLocation="true" allowDefinition="Everywhere" />
  </configSections>
  <facebookSettings appId = "{appId}" appSecret = "{appSecret}"/>

Hier ist meine facebook-sdk und client-side-code:

  Your facebook name is :<asp:Label ID="Label1" runat="server" Text="Not authenticated."></asp:Label>

<div id="fb-root">
</div>
<fb:login-button id="fblogin" onlogin="window.open('http://www.filmania.pl/Default.aspx?code=1', '_self')">
</fb:login-button>
<fb:prompt-permission perms="email"></fb:prompt-permission>
<script>
    window.fbAsyncInit = function () {
        FB.init({
            appId: 'applicationId',
            cookie: true,
            xfbml: true,
            oauth: true
        });
        function facebooklogin() {
            FB.login(function (response) {
                if (response.authResponse) {
                    //user authorized
                    //window.location.reload();
                    window.open("http://www.filmania.pl/Default.aspx?code=1", "_self")
                } else {
                    //user cancelled
                }
            }, { scope: 'email' });
        };
    };
    (function () {
        var e = document.createElement('script'); e.async = true;
        e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
        document.getElementById('fb-root').appendChild(e);
    } ());
</script>

Dies ist mein server-side-code:

if (Request.QueryString["code"] == "1")
    {
        try
        {
            var fbWebContext = new FacebookWebContext();
            Label1.Text += fbWebContext.IsAuthenticated();

            if (fbWebContext.IsAuthenticated())
            {
                var fb = new FacebookWebClient();
                dynamic me = fb.Get("me");
                Label1.Text += me.email + " " + me.name;
            }

        }
        catch (Exception ex)
        {
            Label1.Text += ex;
        }
    }

Nach einem Klick auf Facebook-Login-Button, facebook-popup zeigen und um Erlaubnis bitten. Scheint zu funktionieren, aber nach server-side-code magic Label1.Text ist immer == false. Was vermisse ich hier? Bitte helfen Sie mir, ich bin verloren.

InformationsquelleAutor user964986 | 2011-12-29

2 Kommentare

  1. 0

    Pro die Javascript-SDK, können Sie anrufen möchten, FB.getLoginStatus vor der Aufruf von FB.login. Das könnte sich ändern, bis Sie Ihren workflow einige.

    Finden Sie unter:
    https://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/ und https://developers.facebook.com/docs/reference/javascript/FB.login/

    • Danke für Ihre Antwort. Ich habe es endlich geschafft, es zu tun mit FB.Login. Ich fügte diesen code auf server-Seite: var app = new DefaultFacebookApplication(); app.AppId = „appIUd“; app.AppSecret = „appSecret“; var fbWebContext = new FacebookWebContext(app); Ist es falsch zu benutzen, FB.login, oder kann ich es so lassen?
    • Ok, ich habe es auf FB.getLoginStatus und seine Arbeit trotzdem. Danke.
    • Uff! Ich bin froh, Sie haben es herausgefunden. Happy coding!

Kostenlose Online-Tests