2012-03-10 248 views
3

我想實現Facebook連接到我的網站,我有幾個問題。Facebook的註冊/登錄

1:是否可以使用他當前的Facebook電子郵件/密碼在我的網站上註冊用戶。

比方說,用戶點擊鏈接Register via facebook,然後他必須給我permisions訪問他的密碼,電子郵件等......之後,我把這些信息放在我自己的數據庫中,他將能夠登錄隨時隨地可以隨時隨地使用該賬戶,而不需要在將來給予我任何時間。

2:如果這種註冊是不可能的,那麼對我來說最好的解決方案是什麼?因爲我需要以某種方式跟蹤那些用facebook登錄的用戶,因爲他可以上傳照片,發送消息等。

反正,我對facebook和類似的東西很新,所以我真的迷失在這裏,希望有人能幫助我:)

編輯謝謝大家的精彩回答它幫了我很多,現在所有剩下的就是閱讀文檔:)

回答

6

是的,有可能獲取用戶的信息。但是,如果你從來沒有處理過這個問題,那就太複雜了。

首先,你需要給用戶發送到以下鏈接:然後

https://m.facebook.com/dialog/oauth?client_id=your-client-id&redirect_uri=xxx&scope=listof-information-you-want 

Facebook將您的客戶端返回指定的URI,如果用戶拒絕它會給一個原因。如果不是,你會得到一個urlencoded格式的代碼。

需要以下步驟,訪問令牌的請求,此代碼:

https://graph.facebook.com/oauth/access_token?redirect_uri=xxx&client_id=xxx&client_secret=xxx&code=xxxx 

這會給後面的訪問令牌,如果授權沒有失敗。

這之後你可以要求你想要的信息:

https://graph.facebook.com/me?method=GET&metadata=true&format=json&access_token=access_token 

這將包括Facebook的UID,這是對所有用戶是唯一的。存儲它,你可以辨別註冊和登錄。

這大致是任何oauth2應用程序的過程。

Facebook在用戶授予您後將不會重複詢問權限。因此,您可以存儲訪問令牌並將其用於後端內容,並使用您用於註冊登錄的相同過程。

1
  1. 如果您要求,您無法訪問用戶密碼 - 僅限電子郵件。

  2. 最好的辦法是有一個用戶和他們的Facebook帳戶ID的表。

如果你想允許用戶註冊時沒有的Facebook則對他們的密碼和Facebook ID可爲空場,同時還提供了用戶名現場 - 你可以從Facebook,如果他們通過這條路線註冊填充。

3
  • 你永遠無法從Facebook訪問用戶的密碼,即使他/她的許可,因此用戶將始終通過Facebook有身份驗證,並已Facebook的通過你的登錄用戶一旦身份驗證的用戶ID成功。您可以在本地存儲各種其他數據,但不足以自己對用戶進行身份驗證。

  • 一旦用戶通過身份驗證,您就可以通過API訪問用戶的Facebook用戶ID,這應該足以將各種信息連接到該特定用戶。

2

當從您的控件中獲取密碼時,Facebook不提供對帳戶的訪問。它提供了自己的登錄信息畫布。因此,您不能使用第一種方法將密碼存儲在數據庫中。 Check this out

然而,一旦用戶使用Facebook sdks登錄到他的賬戶,您就可以存儲電子郵件地址。以C#SDK示例代碼爲例,查看link。 您可以使用Facebook API來獲取用戶的電子郵件ID,照片,朋友列表和其他信息,然後相應地播放。