2009-10-17 152 views
1

我遇到一些麻煩,我需要開始與Facebook連接。鏈接Facebook連接帳戶,以我的網站上的用戶帳戶

基本上我已經在facebook中設置我的應用程序,並獲得連接按鈕的工作。現在我想做一些與diggs實現非常相似的事情,當登錄Facebook時,他們被引導到創建帳戶頁面,在那裏他們必須輸入用戶名和一個或兩個其他詳細信息。

我是否需要捕獲返回的cookie,檢查我的數據庫以查看它們是否存在並手動執行此操作,或者是否存在缺少的步驟?

回答

0

不,使用cookie不是推薦的過程。我不知道ASP.net,但下面的過程在其他語言的工作對我來說:

  1. 包括Facebook的Javascript SDK在你的HTML作爲文檔顯示
  2. 添加頁面加載調用FB.getLoginStatus類似於包含here的示例,並按以下方式處理響應:
    • connected表示用戶在註冊您的站點之前已經認證了相關的FB應用程序。在這種情況下,response.authResponse對象將包含一個訪問令牌,您應該在數據庫中爲該用戶更新該訪問令牌,並通過對服務器端代碼的AJAX調用執行此操作。
    • not_authorized表示用戶未授權與您的網站相關的FB應用程序。在這種情況下,你應該使用一些Javascript來使「連接」按鈕出現(它應該是不可見的,直到這一點,我認爲)。
    • 在其他情況下,用戶沒有登錄到Facebook,所以只需使「連接」按鈕出現即可。
  3. 將呼叫連接到FB.login到您的「連接」按鈕。正如您在該方法的文檔中所看到的那樣,它將彈出一個用戶必須接受的權限對話框,以註冊您的應用程序,從而註冊您的網站。只要他們接受,您的Javascript代碼將會收到與上述類型相同的response.authResponse對象。在這種情況下,你會想要做一些與訪問令牌不同的事情。以下只是您可能想要做什麼的模糊想法,但您的方法應該大致相似。
  4. 在上面的FB.login的響應函數中,只要確定了成功的結果,就插入一些額外的Javascript來顯示或創建您的網站註冊表單的HTML。這可能是最好的,如果你不重定向離開當前頁面,這樣你可以保留大部分代碼在客戶端(否則你需要臨時存儲訪問令牌的地方等)
  5. 允許用戶將他們的註冊信息輸入到此表單中,並且一旦他們提交,將您從authResponse中檢索到的訪問令牌和Facebook用戶ID與表單字段一起傳遞。
  6. 使用您的服務器端代碼進行處理,並將訪問令牌和FB UID與新註冊的用戶詳細信息一起存儲。
相關問題