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

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

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

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

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

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

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

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

Не совсем уверен, что я правильно вас понимаю, но при условии, что вы хотите зарегистрировать пользователя в своей собственной системе, не представляя отдельный поток 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 для начала работы.

Intereting Posts
Android – Как подключить WebView к активности после создания его с помощью контекста приложения Scrollview внутри прокрутки в версии для Android Хорошая идея включить файлы JAR в библиотеку Android (потенциальный конфликт с другими библиотеками)? Override OnResume () метод всех действий Android Упаковка кода Android в jar-файл Как установить тот же Android-приложение .apk два раза на одном устройстве? Невозможно включить SearchView в Fragment (AppCompat) Ошибка GLS: INVALID_AUDIENCE в конечных точках Google Android – запись / сохранение файлов только из собственного кода Как получить размер карты Android SD? Демоверсия Tensorflow Android: загрузите собственный график? Поиск местоположения пикселов элемента Listview, кажется, возвращает неправильное значение Android Studio не может найти мое устройство Миграция Android Realm: добавление новой колонки списка Realm Как вы справляетесь с интернационализацией: «Ваш вход« xyz »превосходный!»