2011-12-29 16 views
0

私は同じような質問が何度か聞かれたが、それでも私はそれを動作させることはできません知っている。最新のFacebook C#SDKで自分のサイトにログインし、ログインしたユーザーのEメールと名前を読み込みたいここでFacebookのC#sdkログインasp.net 4.0のウェブサイト

は私のweb.config Facebookの設定です:ここで

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

は私のFacebookのSDKおよびクライアント側のコードです:

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> 

これは私のサーバー側のコードです:

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; 
     } 
    } 

Facebook Login Button facebook popupが表示され、許可を求めています。正常に動作するように見えますが、サーバー側のコードマジックLabel1.Textの後は常に== falseです。何が私はここで行方不明ですか?私を助けてください、私は失われています。

答えて

0

Javascript SDKごとに、FB.getLoginStatus を先にに呼び出し、FB.loginを呼び出すことができます。それはあなたのワークフローを変えるかもしれません。

参照: https://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/https://developers.facebook.com/docs/reference/javascript/FB.login/

+0

ありがとうございます。私は最終的にFB.Loginでそれを行うことができました。このコードをサーバー側に追加しました: var app = new DefaultFacebookApplication(); app.AppId = "appIUd"; app.AppSecret = "appSecret"; var fbWebContext = new FacebookWebContext(app); FB.loginを使用するのは間違っていますか?それともそのままにすることはできますか? – user964986

+0

さて、FB.getLoginStatusとその動作に変更しました。ありがとうございました。 – user964986

+0

すごい!私はあなたがそれを把握してうれしいです。ハッピーコーディング! – DMCS

0

私はFacebookのSDKのAPIの古いバージョンで働いているが、私は今、私はCodePlexの上で見つかった最新の安定バージョン5.4.1.0ウィッヒのための一例を作った...

例はここにあります:http://www.simpa.dk/Projects.aspx?CategoryId=1&IndexId=2

希望これは他の人を助けることができます... :) 。

関連する問題