2011-07-24 17 views
8

是/否+更多問題:Facebook SSO和第三方網站註冊一步到位?

是否可以使用Facebook SSO系統並同時爲自己的網站/應用程序註冊用戶?

就像在用戶部分只需要一個按鍵一樣。

此外,iPhone和Android上有這個工作的例子嗎?

從我讀過的,有一個過程來做SSO和一個單獨的過程來做註冊。

其原因是除了Facebook通過Insights系統給我提供的信息之外,我還想保留自己的用戶數據記錄,但是我希望儘可能無痛苦。

t ;;博士之前已經完成了這項工作,有哪些例子,以及任何有用和相關的文檔可用?

+0

您是否找到解決方案? –

回答

2

不能確定我理解正確,但假設你想在自己的系統註冊用戶沒有提出單獨的REG流,你可以做以下的(?):

  1. 要求用戶授權您的應用程序(即通過SSO或常規FB流程 - 使用最新的Facebook SDK將觸發適當的流程)。請務必登錄ask for any extra permissions you'll need進行註冊。
  2. 一旦您的應用被通知Facebook授權,通過Facebook的API(即使用圖形路徑/me?fields=id,name,email獲取FB ID,姓名和電子郵件)提取您需要註冊的任何用戶數據。 Graph API Explorer適用於檢查您可以獲得哪些字段。
  3. 使用(2)中的回覆製作一個POST到您自己的系統來創建一個帳戶。
  4. 一旦你的帳戶創建請求完成,允許用戶開始做他應該在你的應用程序(=你都設置!)。並且可能會在客戶端(設備)中保存某種帳戶標識符,如果您稍後需要它。

要使此流程與用戶無縫連接,您應該在步驟1-4中顯示加載/進度指示器。

Facebook的SDK documentation應該讓你去步驟(1)。

一些樣品(的Objective-C)的步碼(2)和部分(3):

- (void)facebookUserAuthorized 
{ 
    [FBRequestConnection startWithGraphPath:@"me" 
           parameters:[NSDictionary dictionaryWithObject:@"id,name,birthday,first_name,last_name,gender,email" forKey:@"fields"] 
           HTTPMethod:@"GET" 
          completionHandler:^(FBRequestConnection *connection, id result, NSError *error) { 
           NSDictionary *userData = (NSDictionary*)result; 
           [self registerUserWithEmail:[userData objectForKey:@"email"] 
               facebookId:[userData objectForKey:@"id"] 
                gender:[userData objectForKey:@"gender"]]; 
          }]; 
} 

- (void)registerUserWithEmail:(NSString*)email facebookId:(NSString*)facebookId gender:(NSString*)gender 
{ 
    // Send a POST to your own server with the user details 
} 

而且我敢肯定,你可以應用在Android上同樣的原則。檢查出Facebook's Android docs開始。

+0

感謝您的回答。自從我問這個問題後,我學到了更多的後端開發,並且facebook sdk也有所改進。我問這個問題是因爲我對整個過程的最大擔憂是UI/UX相關。類似的過程是否可以通過Google或Twitter等其他SSO系統更順暢? –

+0

在iOS 6上,Twitter和Facebook SSO非常相似,並且允許您提供流暢的註冊流程(這幾乎是他們整合到iOS本身的全部要點)。 不完全確定谷歌的流程是如何工作的,但我猜他們幾乎都是一樣的(儘管谷歌在iOS上的支持較少)。 –