Пользователи, которые только что загрузили ваше 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 .