Статьи

Добавление аутентификации Facebook в ваше приложение Android

Социальный логин — это не только кайф. Все больше исследований подтверждают преимущества предоставления вашим пользователям возможности входа в систему с использованием социальных сетей в качестве альтернативы заполнению регистрационных форм. Например, недавнее исследование показало, что три из каждых четырех пользователей Интернета покидают веб-сайт, а не пытаются зарегистрировать новую учетную запись. С приложениями ситуация ничем не отличается, и она еще более критична, поскольку мобильный пользователь в движении с экранной клавиатурой с меньшей вероятностью заполнит форму, чем кто-либо, просматривающий Интернет.

Независимо от того, откуда пришел пользователь вашего приложения, возможность входа через социальную учетную запись (например, Facebook или Twitter) в качестве альтернативы заполнению формы имеет несколько преимуществ:

  • Повышение уровня привлечения пользователей за счет упрощения процесса регистрации (регистрация в один клик / вход в систему)
  • Улучшенный сбор данных, поскольку вы часто получаете дополнительные данные вместе с учетными данными / токенами пользователей социальной сети (например, по электронной почте)
  • Улучшить социальное восприятие вашего приложения
  • Повышение точности пользовательских данных (проще подделать данные в форме регистрации, чем подделывать полную учетную запись в социальной сети)

Общий вход в социальную сеть меняет правила игры, и во всех мобильных приложениях наблюдается сильная тенденция его внедрения. Но добавление социальной логин в ваше приложение не для слабонервных! Хотите добавить логин Twitter в свое приложение? Там нет Android SDK. Может быть, вы можете скопировать чужое решение . Теперь вам нужно добавить логин на Facebook? Вы можете проверить Facebook Android SDK и выполнить несколько простых шагов (не так), чтобы заставить его работать.

Или вы можете просто использовать Kii Cloud SDK. Один последовательный, надежный и простой в использовании SDK, который покрывает все ваши внутренние потребности (от управления пользователями до полного управления данными, от базовой до полностью настраиваемой аналитики, от обработки тонны рекламных сетей с несколькими строками кода до выполнения push-уведомлений во всех его варианты).

Здесь, в Kii, мы прилагаем все усилия, чтобы сделать вашу жизнь разработчика приложений проще. Мы хотим, чтобы вы раскрыли всю мощь своего приложения, сосредоточившись на том, чтобы сделать его более привлекательным. Мы позаботимся об остальном. Вот почему мы создали простой в использовании социальный коннектор в нашем Kii Cloud SDK.

В этой записи блога я покажу вам, как разрешить пользователям регистрироваться / входить в приложение Android за один шаг, используя всего несколько строк кода с помощью самой популярной социальной сети: Facebook (на которую в 1 квартале 2013 года приходилось 46% предпочтений в социальных сетях).

Настройка Kii Cloud

Прежде всего, давайте посмотрим, как настроить приложение Android для использования Kii Cloud SDK. Перейдите на сайт developer.kii.com и зарегистрируйтесь. После входа в систему нажмите «Создать приложение», установите флажок «Android», нажмите «Создать», затем нажмите значок Android, прокрутите немного вниз и загрузите Kii Cloud Android SDK по предложенным ссылкам (Cloud SDK v2. 1.7). Вы получите файл jar, который вы должны включить в каталог libs внутри вашего проекта Android Eclipse, а затем из Eclipse вы должны «Добавить в путь сборки». Хорошо, теперь мы готовы работать с Kii Cloud в вашем приложении для Android.

Чтобы определить, с каким приложением вы работаете, Kii Cloud использует два токена: идентификатор приложения и ключ приложения. Перейдите на сайт developer.kii.com , выберите приложение, созданное на предыдущем шаге, и нажмите «Ключи доступа» (найдите значок ключа). Запишите идентификатор приложения и ключ приложения.

Теперь вернемся к вашему проекту Android в Eclipse, добавьте следующие разрешения в ваш AndroidManifest.xml:

     <uses-permission android:name="android.permission.INTERNET" />
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

WRITE_EXTERNAL_STORAGE требуется только в том случае, если вы используете функцию хранения файлов (связанную с KiiFile). Если вы не можете просто игнорировать это.

Перед выполнением любого вызова API вам потребуется инициализировать Kii Cloud с вашим приложением, используя ключи, описанные выше:

     Kii.initialize("APPID", "APPKEY", Site.US); 

Например, вы можете сделать это в методе onCreate () вашего основного действия (можно вызывать инициализацию несколько раз). Если вы находитесь в Японии, вы должны использовать Site.JP вместо Site.US.

Легко, правда?

Как работает регистрация в Kii Cloud и вход в систему

Kii Cloud обеспечивает полное управление пользователями вашего приложения, включая общие сценарии, такие как регистрация пользователей, проверка и вход в систему в облаке. Если вы посмотрите на пример приложения Kii Balance для Android, вы увидите, что регистрация пользователя обрабатывается следующим образом:

     // call user registration API
     RegisterCallback callback = new RegisterCallback(dialog);
     KiiUser user = KiiUser.createWithUsername(username);
     user.register(callback, password); 

Как видите, нам просто нужно передать имя пользователя и пароль, записанные в диалоговом окне, чтобы создать пользователя в Kii Cloud. Вовлечен обратный вызов, потому что это неблокирующий асинхронный вариант, который продолжается сразу после вызова метода регистрации (в общем случае мы предлагаем как блокирующие, так и неблокирующие + обратные вызовы в широком спектре методов Kii Cloud). Регистрация обратного вызова закроет диалоговое окно после успешной регистрации и перейдет к входу в систему.

Процесс входа очень похож:

     // call user login API
     LoginCallback callback = new LoginCallback(dialog);
     KiiUser.logIn(callback, username, password); 

За исключением того, что нам нужно передать имя пользователя и пароль, чтобы проверить соответствие с облаком. После успешного входа в систему мы можем сохранить токен доступа для автоматизации процесса входа в следующий раз, когда пользователь откроет приложение:

     // store access token
     KiiUser user = KiiUser.getCurrentUser();
     String token = user.getAccessToken();
     Preferences.setStoredAccessToken(activity, token); 

Если вы храните токен для входа в систему, как описано выше, приложение должно будет проверить, существует ли токен в настройках приложения, и выполнить вход в систему, используя его:

     // login with token
     AutoLoginCallback callback = new AutoLoginCallback(this);
     KiiUser.loginWithToken(callback, token); 

(метод onLoginCompleted () в обратном вызове будет вызван, как только токен будет проверен как действительный, и тогда вы получите доступ к аутентифицированному пользователю).

Весь процесс прост и понятен, для этого требуется только доступ к Интернету в вашем приложении. Но что, если вы хотите добавить возможность зарегистрироваться и войти за один шаг, используя Facebook?

Добавление Facebook в список регистрации / входа

Kii Cloud позволяет легко обрабатывать сценарии входа в социальные сети. Когда дело доходит до Facebook, вы, вероятно, потратите больше времени на настройку приложения на сайте разработчиков Facebook, чем добавляя в приложение код входа в систему Kii Cloud. Итак, прежде всего, давайте настроим приложение на Facebook:  

  1. Перейдите на https://developers.facebook.com/apps и нажмите «+ Создать новое приложение». Введите название своего приложения и нажмите «Продолжить»
  2. Запишите идентификатор приложения, предоставленный Facebook для этого приложения. Вам это понадобится позже.
  3. Отметьте «Native Android App» в форме и введите имя пакета вашего приложения, активность, которую вы хотите, чтобы Facebook открывал после успешного входа, и хэши ключей (для получения информации о том, как рассчитать хеш ключа, см. Эту страницу ). Самое главное, чтобы убедиться, что флажок «Facebook login» включен. Примечание: вы также можете отключить «режим песочницы» при запуске.

Мы все настроены на стороне Facebook, давайте пойдем и настроим приложение для интеграции с Facebook на консоли Kii Developer:

  1. Перейдите на сайт developer.kii.com и щелкните свое приложение. Нажмите «Изменить», а затем «Настройки» и введите идентификатор приложения Facebook из шага 2 выше в поле идентификатора Facebook.
  2. Нажмите «Сохранить»

Вот и все на консоли разработчика Kii. Пришло время заняться кодированием. Вот фрагмент кода для входа в Facebook (мы называем это входом в систему, но это регистрация + вход в систему).

     KiiSocialConnect conn = Kii.socialConnect(SocialNetwork.FACEBOOK);
     facebook.initialize(Constants.FB_APP_ID, null, null);     
     conn.logIn(activity, null, new KiiSocialCallBack(){
         @Override
         public void onLoginCompleted(SocialNetwork network, KiiUser user, Exception e){
             if (e == null) {
                 // Success.
             } else {
                 // Failure. handle error.
             }
         }
     }); 

В приведенном выше фрагменте «действие» — это действие, которое будет обрабатывать вход в Facebook. Метод logIn () не блокирует, поэтому нам нужно использовать обратный вызов.

Важное замечание: «активность» * должна * также реализовывать метод onActivityResult (), который должен включать код для завершения аутентификации Facebook:

     @Override
     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
       Kii.socialConnect(SocialNetwork.FACEBOOK).respondAuthOnActivityResult(
           requestCode,
           resultCode,
           data);
     } 

Также возможно связать существующих пользователей с их учетными записями Facebook, и процесс практически идентичен тому, что вы видели при входе в систему (просто убедитесь, что ваш пользователь прошел проверку подлинности через Kii, прежде чем связывать / отменять привязку учетной записи).

Как вы можете видеть с Kii Cloud, вы можете предложить логин Facebook в вашем приложении в течение нескольких минут. А поскольку мы поддерживаем бэкэнд, вам не придется иметь дело с каким-либо изменением сервиса или обновлением в API Facebook. Мы позаботимся о том, чтобы ваше приложение работало гладко, чтобы вы могли сосредоточиться на том, что важно для ваших пользователей.

Следите за нашей следующей публикацией по Android, которая покажет, как добавить поддержку нескольких поставщиков рекламы в ваше приложение с помощью всего лишь нескольких строк кода, оставаясь под контролем управления рекламной сетью.

Для получения дополнительной информации посетите раздел Социальная интеграция в нашей документации по Android. С Kii Cloud вы можете быстро освоиться, следуя руководству по Android и страницам быстрого запуска Android .