Регистрация в режиме единого входа в Facebook и сторонних сайтов за один шаг?

Да / Нет + еще вопрос:

Можно ли использовать систему единого входа Facebook и одновременно зарегистрировать пользователя для своего собственного веб-сайта / приложения?

Как и в случае необходимости всего одного нажатия клавиши со стороны пользователя.

Кроме того, есть ли примеры работы на iPhone и Android?

Из того, что я прочитал, есть процесс для выполнения единого входа и отдельный процесс регистрации.

Причиной является то, что я хотел бы сохранить собственную запись пользовательских данных в дополнение к тому, что дает мне facebook через систему Insights, НО я хотел бы сделать это настолько безболезненным, насколько это возможно.

T ;; dr это было сделано раньше, какие примеры и какая полезная и соответствующая документация доступна?

Solutions Collecting From Web of "Регистрация в режиме единого входа в Facebook и сторонних сайтов за один шаг?"

Не совсем уверен, что я правильно вас понимаю, но при условии, что вы хотите зарегистрировать пользователя в своей собственной системе, не представляя отдельный поток reg (?), Вы можете сделать следующее:

  1. Попросите пользователя авторизовать ваше приложение (то есть через SSO или обычный поток FB – с использованием последнего пакета SDK для Facebook будет инициировать соответствующий поток). Обязательно попросите дополнительные разрешения, необходимые для регистрации.
  2. Как только ваше приложение будет уведомлено об авторизации в Facebook, извлеките любые пользовательские данные, которые вам нужны для регистрации через API Facebook (т. Е. С помощью графа path /me?fields=id,name,email чтобы получить идентификатор FB, имя и адрес электронной почты). API-интерфейс Graph API отлично подходит для проверки полей, которые вы можете получить.
  3. Используйте ответ от (2), чтобы сделать POST в вашей собственной системе, чтобы создать учетную запись.
  4. После того, как ваш запрос на создание учетной записи завершен, разрешите пользователю начинать делать все, что он должен в вашем приложении (= вы все настроены!). И, возможно, сохраните какой-то идентификатор учетной записи в клиенте (устройстве), если вам это нужно позже.

Чтобы сделать этот поток незаметным для пользователя, вы должны, вероятно, показать индикатор загрузки / выполнения во время шагов 1-4.

Документация SDK от Facebook должна помочь вам перейти к шагу (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. Ознакомьтесь с документами Android от Android для начала работы.