2013-01-03 114 views
0

我是5年的開發人員,所以我對asp.net並不陌生,但我對JQuery和JSON很陌生,所以也許這就是爲什麼我沒有得到它。我在這裏關注瞭如何成功用Facebook登錄的教程,它的工作原理! http://www.codeproject.com/Articles/450535/Using-Facebook-login-in-ASP-NET-application-withou使用FB,ASP.NET和登錄事件進行登錄。怎麼樣?

但我的問題是,我在我的網站製作一個「意見」系統,我想用戶輸入他們的意見,然後右鍵下方點擊「登錄facebook」按鈕,那麼當它成功登錄後,將它添加到評論列表中。

我唯一的問題是我不知道如何獲得登錄,以觸發服務器端的C#代碼。我在這裏錯過了一些東西,以便進入Facebook的「登錄成功」事件?

我懷疑它是與這裏的幾行代碼:

enter codedd here 

// This method will be called after the user login into facebook. 
    function OnLogin(response) { 
     if (response.authResponse) { 
      FB.api('/me?fields=id,name,gender,email,birthday', LoadValues);      
     } 
    } 

    //This method will load the values to the labels 
    function LoadValues (me) { 
     if (me.name) { 
      document.getElementById('displayname').innerHTML = me.name; 
      document.getElementById('FBId').innerHTML = me.id; 
      document.getElementById('DisplayEmail').innerHTML = me.email; 
      document.getElementById('Gender').innerHTML = me.gender; 
      document.getElementById('DOB').innerHTML = me.birthday; 
      document.getElementById('auth-loggedin').style.display = 'block'; 
         } 
    } 

或在這裏:

<div id="fb-root"></div> <!-- This initializes the FB controls--> 
<div class="fb-login-button" autologoutlink="true" scope="user_birthday,email" > 
    Login with Facebook 
</div> <!-- FB Login Button --> 
<!-- Details --> 
<div id="auth-status">  
<div id="auth-loggedin" style="display: none"> 
    Hi, <span id="displayname"></span><br/> 
    Your Facebook ID : <span id="FBId"></span><br/> 
    Your Email : <span id="DisplayEmail"></span><br/> 
    Your Sex:, <span id="Gender"></span><br/> 
    Your Date of Birth :, <span id="DOB"></span><br/>   
</div> 
</div> 

任何線索或幫助將不勝感激。我是一個非常漫長的潛伏者(也許10年?),第一次海報。

回答

0

這是我想到的第一件事,它不是一個完美的解決方案,但它可能在這種情況下工作。簡而言之,會觸發一個帶有虛擬按鈕的回傳功能,並在正確的位置點擊它,並顯示在正確的位置(而不是由用戶點擊)。

1)將一個asp.net按鈕(runat = server)放在頁面的某個地方。這將是一個虛擬按鈕,只是爲了觸發回傳,所以使其寬度= 0或類似的東西。讓我們叫它btnDummmy。使ClientIDMode =靜態

2)將服務器端事件附加到btnDummy。在那裏放置你的服務器端註釋保存邏輯。 評論應該在asp.net文本框(runat = server)中。

3)將btnDummy也放入updatePanel。 (這樣你就不會失去的跨度值,顯示名稱,FBID,布拉布拉)

4)當你回電話btnDummy.click()之前使用Facebook登入在LoadValues(我)的結束;

這應該會訣竅...

+0

只要按鈕被點擊「登錄」這是真棒的工作。我的下一個任務是查看是否可以從 提取任何想法? 感謝您的幫助到目前爲止 – user1944720

+0

繼續以同樣的方式...添加5個更多的asp.net文本框或hiddenfields(這將更好)(txtdisplayname,txtFBId,...)的寬度爲「0」(用戶不可見)和clientidmodes是靜態的。當您在LoadValues函數中填充標籤時,還需填寫那些文本框/隱藏字段。然後,當點擊btnDummy時,你將能夠讀取它們的值... – erichste

+0

我做到了,但它似乎沒有爲我工作?我添加了 document.getElementById('trestid')。innerHTML = me.name; document.getElementById(「btnDummy」)。點擊(); FB部分 – user1944720