Пользователи, которые только что загрузили ваше Android-приложение, будут намного счастливее, если вы позволите им войти в систему с помощью популярной службы социальных сетей вместо того, чтобы просить их заполнить регистрационную форму. В этом кратком совете вы узнаете, как разрешить своим пользователям входить в ваше приложение с помощью своих учетных записей Twitter.
  Предпосылки 
Чтобы следовать, у вас должно быть настроено следующее:
- последняя версия Android Studio
- аккаунт в твиттере
- учетная запись Fabric
Fabric — это платформа Twitter для разработки мобильных приложений. Он предоставляет набор инструментов, которые делают мобильную разработку более простой и оптимизированной. Сюда входят отчеты о сбоях, бета-рассылка, мобильная аналитика и т. Д. Если у вас еще нет учетной записи Fabric, вам нужно будет запросить приглашение и подождать один или два дня.
1. Зарегистрируйте свое приложение
Любое приложение, которое должно взаимодействовать с API-интерфейсами Twitter, должно быть зарегистрировано с помощью консоли управления приложениями Twitter . Используйте вашу учетную запись Twitter, чтобы войти.
Нажмите на кнопку « Создать новое приложение» и заполните форму. Введите значимые значения в поля « Имя» и « Описание» , поскольку они будут показаны пользователям вашего приложения. Для этого урока нам не понадобится URL-адрес веб-сайта и обратного вызова , но вы не можете оставить их пустыми. Если у вас есть собственный сайт, вы можете использовать его адрес здесь. Если вы этого не сделаете, вы можете просто ввести http://example.com .

Примите соглашение и отправьте форму. Ваше приложение теперь зарегистрировано.
Перейдите на вкладку « Ключи и жетоны доступа » и запишите свой Ключ потребителя и Секрет потребителя . Они понадобятся нам позже.

2. Установите Fabric для Android Studio
Войдите в свою учетную запись Fabric и загрузите плагин для Android Studio.

После завершения загрузки запустите Android Studio и выберите « Настройка»> «Подключаемые модули» .

Нажмите кнопку « Установить плагин с диска» и выберите только что загруженный файл. После установки вы сможете увидеть Fabric для Android Studio в списке плагинов.

3. Используйте Плагин Fabric
Создайте новый проект (или откройте существующий) и щелкните значок Fabric. Войдите в свою учетную запись Fabric и выберите Twitter, чтобы установить Twitter Kit для своего проекта.

Поскольку мы будем использовать Twitter Kit только для входа в Twitter, выберите « Войти через Twitter» на следующем экране.

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

Далее, когда вы выберете вкладку для AndroidManifest.xml , вы увидите, что необходимо сделать два дополнения:
-  Для взаимодействия с серверами Twitter необходимо запросить разрешение android.permission.INTERNET.
-   Автоматически сгенерированный ключ API должен быть упомянут в форме meta-data. Опять же, вы можете просто скопировать и вставить код, показанный плагином.

Вы увидите, что в каталоге вашего приложения был создан новый файл с именем fabric.properties . Откройте файл и добавьте к нему тот же ключ API, как показано ниже.
| 1 | apiKey=21212qu6q5izhayqwywqwz1ghyuiopqwq211wqqwq12341 | 
4. Создайте активность
  В этом уроке мы создадим очень простое действие, которое отображает кнопку входа в систему и TextView которое отображает результат попытки входа в систему. 
  Шаг 1: Определите макет 
  Создайте новый макет XML с именем login_activity.xml в каталоге res / layout .  Добавьте TwitterLoginButton используя следующий фрагмент кода: 
| 1 2 3 4 5 | <com.twitter.sdk.android.core.identity.TwitterLoginButton        android:id=»@+id/twitter_login_button»        android:layout_width=»wrap_content»        android:layout_height=»wrap_content»        android:layout_centerInParent=»true»/> | 
  Затем добавьте TextView для отображения результатов попытки входа в систему. 
| 1 2 3 4 5 6 7 8 | <TextView        android:layout_width=»wrap_content»        android:layout_height=»wrap_content»        android:id=»@+id/status»        android:layout_alignParentTop=»true»        android:layout_alignParentLeft=»true»        android:textSize=»20sp»        /> | 
  Шаг 2. Создайте класс 
  Создайте новый класс Java, который расширяет класс Activity и переопределяет его метод onCreate .  Используйте setContentView для использования макета XML, который мы создали на предыдущем шаге. 
  Получите виджеты, определенные в XML, используя метод findViewById .  Вы можете оставить TextView пустым, но я собираюсь использовать метод setText и отобразить String надписью «Status: Ready» . 
На этом этапе ваш класс должен иметь следующий код:
| 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 | public class LoginActivity extends Activity {     private TwitterLoginButton loginButton;     private TextView status;     @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.login_activity);         loginButton = (TwitterLoginButton)findViewById(R.id.twitter_login_button);         status = (TextView)findViewById(R.id.status);         status.setText(«Status: Ready»);     } } | 
  Когда вы снова щелкните значок плагина и перейдете на вкладку « Начать активность» , вы найдете код, который необходимо добавить для инициализации Fabric.  Скопируйте и вставьте этот код в метод onCreate перед вызовом setContentView . 
| 1 2 | TwitterAuthConfig authConfig = new TwitterAuthConfig(TWITTER_KEY, TWITTER_SECRET); Fabric.with(this, new Twitter(authConfig)); | 
Плагин генерирует свои собственные значения для ключа потребителя и секрета потребителя. Хотя вы можете использовать эти значения, мы будем использовать значения, которые мы получили, когда ранее регистрировали наше приложение в консоли управления приложениями Twitter. Код для использования этих значений должен выглядеть следующим образом:
| 1 2 | private static final String TWITTER_KEY = «qweYTYiqer5tTeqiq1»; private static final String TWITTER_SECRET = «wuquUUwy1626661719qw8wwWQHEJQ»; | 
  Нажатие на кнопку входа запускает внешнюю Activity которая возвращает результат.  Чтобы получить этот результат, переопределите метод onActivityResult в Activity и передайте полученные аргументы методу onActivityResult кнопки: 
| 1 2 3 4 5 | @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) {     super.onActivityResult(requestCode, resultCode, data);     loginButton.onActivityResult(requestCode, resultCode, data); } | 
  Чтобы обработать результат попытки входа в систему, вы должны создать пользовательский Callback .  Создайте внутренний класс с именем LoginHandler, который расширяет Callback<TwitterSession> , и переопределите все его абстрактные методы. 
  Имена методов этого класса очень интуитивно понятны.  В случае успешного входа в систему вызывается метод success .  В противном случае вызывается метод failure . 
| 01 02 03 04 05 06 07 08 09 10 11 | private class LoginHandler extends Callback<TwitterSession> {     @Override     public void success(Result<TwitterSession> twitterSessionResult) {     }     @Override     public void failure(TwitterException e) {     } } | 
  Чтобы TwitterLoginButton использовал этот пользовательский обратный вызов, в методе onCreate класса Activity передайте экземпляр LoginHandler кнопки. 
| 1 | loginButton.setCallback(new LoginHandler()); | 
  В случае успешной попытки входа в систему, отобразите имя вошедшего в систему пользователя и токен авторизации.  Оба значения доступны из поля данных Result<TwitterSession> .  Чтобы получить имя пользователя, вошедшего в систему, используйте getUsername .  Аналогично, для получения токена аутентификации используйте getAuthToken .  Добавьте следующий код в метод success : 
| 1 2 3 4 5 6 7 | String output = «Status: » +         «Your login was successful » +         twitterSessionResult.data.getUserName() +         «\nAuth Token Received: » +         twitterSessionResult.data.getAuthToken().token; status.setText(output); | 
  В случае неудачной попытки входа в систему отобразите сообщение «Ошибка входа» .  Добавьте следующее к методу failure : 
| 1 | status.setText(«Status: Login Failed»); | 
Шаг 3: Обновите манифест
  Определите Activity вы только что создали в манифесте вашего проекта.  Если это первая Activity вашего приложения, создайте фильтр намерений, чтобы он отвечал на android.intent.action.MAIN .  Добавьте следующий код в ваш файл: 
| 1 2 3 4 5 6 | <activity android:name=».LoginActivity»>     <intent-filter>         <action android:name=»android.intent.action.MAIN»/>         <category android:name=»android.intent.category.LAUNCHER»/>     </intent-filter> </activity> | 
5. Построить и запустить
Ваше приложение готово к запуску. Когда вы создадите и запустите его на своем Android-устройстве, вы увидите следующее окно:

Если вы нажмете кнопку входа, вы будете перенаправлены в Twitter. Обратите внимание, что имя и описание приложения, которые вы указали в первом шаге этого руководства, отображаются на этой странице.

  Когда вы нажимаете кнопку « Авторизовать приложение» , попытка входа в систему считается успешной, и вы перенаправлены обратно в свое приложение.  Вы увидите, что TextView обновлен, чтобы показать имя пользователя и токен авторизации. 

  Вывод 
В этом кратком совете вы узнали, как разрешить пользователям вашего приложения входить в систему с помощью Twitter. Вы также узнали, как установить плагин Fabric для Android Studio и как использовать его для добавления Twitter Kit в ваш проект. Чтобы узнать больше о Fabric и Twitter Kit, обратитесь к документации Twitter Kit для Android .